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; }
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(); } }