public synchronized Disciplina inclui(String nome, String descricao) throws Exception { // ------- Testa consist�ncia dos dados ------- String testeCons = testaConsistencia(null, nome, descricao); if (testeCons != null) throw new Exception("não foi possível inserir devido ao campo " + testeCons + ""); // ------- Insere na base de dados ------- // Inicia a conexão com a base de dados Connection dbCon = BancoDados.abreConexao(); Statement dbStmt = dbCon.createStatement(); ResultSet dbRs; String str; // Pega Id maximo long maxId = 1; str = "SELECT Max(cod) AS maxId From Disciplina"; BancoDadosLog.log(str); dbRs = dbStmt.executeQuery(str); if (dbRs.next()) { maxId = dbRs.getLong("maxId"); maxId++; } String id = Long.toString(maxId); nome = StringConverter.toDataBaseNotation(nome); // Insere o elemento na base de dados str = "INSERT INTO Disciplina (cod, nome, descricao, desativada)"; str += " VALUES (" + id + ",'" + nome + "'" + ",'" + StringConverter.toDataBaseNotation(descricao) + "',0)"; BancoDadosLog.log(str); dbStmt.executeUpdate(str); // Finaliza conexao dbStmt.close(); dbCon.close(); // ------- Insere na mem�ria ------- // Cria um novo objeto Disciplina obj = new Disciplina(id, nome, descricao, false); // Insere o objeto na lista do gerente this.listaObj.addElement(obj); // ---- Cria uma nova turma ---- Turma_ger turmager = new Turma_ger(); turmager.inclui("Turma 1", "", obj); return obj; }
public synchronized void remove(Disciplina obj) throws Exception { // PROCEDIMENTOS PR�-Remoção // remove listas correspondentes Lista_ger listager = new Lista_ger(); listager.removeByDisciplina(obj); // remove turmas correspondentes Turma_ger turmager = new Turma_ger(); turmager.removeByDisciplina(obj); // Remoção // ------- Remove do banco ------- Connection dbCon = BancoDados.abreConexao(); Statement dbStmt = dbCon.createStatement(); ResultSet dbRs; String str; str = "DELETE FROM Disciplina WHERE cod=" + obj.getCod(); BancoDadosLog.log(str); dbStmt.executeUpdate(str); dbStmt.close(); dbCon.close(); // ------- Remove da mem�ria ------- this.listaObj.removeElement(obj); // PROCEDIMENTOS P�S-Remoção }
public void altera(Disciplina obj, String nome, String descricao) throws Exception { // ------- Testa consist�ncia dos dados ------- String testeCons = testaConsistencia(obj, nome, descricao); if (testeCons != null) throw new Exception("não foi possível alterar devido ao campo " + testeCons + ""); // ------- Altera na base de dados ------- // Inicia a conexão com a base de dados Connection dbCon = BancoDados.abreConexao(); Statement dbStmt = dbCon.createStatement(); ResultSet dbRs; String str; nome = StringConverter.toDataBaseNotation(nome); str = "UPDATE Disciplina SET nome='" + nome + "', descricao='" + StringConverter.toDataBaseNotation(descricao) + "' WHERE cod=" + obj.getCod(); BancoDadosLog.log(str); dbStmt.executeUpdate(str); // Finaliza conexao dbStmt.close(); dbCon.close(); // Altera dados do objeto if (!obj.getNome().equals(nome)) { obj.setNome(nome); } if (!obj.getDescricao().equals(descricao)) { obj.setDescricao(descricao); } }
protected static synchronized void inicializa() throws Exception { if (listaObj == null) { // primeira utilização do gerente de objetos listaObj = new Vector(); // Inicia a conexão com a base de dados Connection dbCon = BancoDados.abreConexao(); Statement dbStmt = dbCon.createStatement(); ResultSet dbRs; // seleciona todos objetos String str = "SELECT * FROM Disciplina ORDER BY Nome"; BancoDadosLog.log(str); dbRs = dbStmt.executeQuery(str); while (dbRs.next()) { // Le dados da base String cod = dbRs.getString("cod"); String nome = dbRs.getString("nome"); String descricao = StringConverter.fromDataBaseNotation(dbRs.getString("descricao")); boolean desativada = dbRs.getBoolean("desativada"); // Instancia o objeto Disciplina obj = new Disciplina(cod, nome, descricao, desativada); // Coloca-o na lista de objetos listaObj.addElement(obj); } listaObj.trimToSize(); // Finaliza conexao dbStmt.close(); dbCon.close(); } }