Inserindo dados de uma Jcombox editável em um banco de dados!

Olá amigos!

Estou tendo um problema bastante chato aqui com uma Jcombo editável.
O que acontece… tenho uma jcombo que já está sendo alimenta com alguns valores armazenados em um banco de dados, só que eu quero que além de ela ser alimentada por alguns valores vindo de um banco eu tambem possa inserir valores nesta, para que estes valores também sejam armazenados no banco. Para isso eu preciso comparar o valor que eu inserir nesta jcombo editável com os valores que já estao armazenados no banco, pois nao quero que seja armazenados valores iguais. Para fazer isso eu faço uma consulta no banco e retorno todos os valores que estão nele. Depois disso faço uma condição para inserir no banco só valores digitados que sejam diferentes do que ja estao nele. Ai está meu problema! Faço uma consulta no banco ai quando tento inserir da um erro dizendo que não se pode realizar a operação após resultset ser fechado… :frowning:
Abaixo segue o código para que seja observado onde estou cometendo o erro.

[code]connection.executeSQL(“SELECT * FROM professor”);
while(connection.rs.next()){
ArrayList nomesProfBanco = new ArrayList();
nomesProfBanco.add(connection.rs.getString(“Nome”));
for (int i = 0; i < nomesProfBanco.size(); i++) {
if(!cbProf.getEditor().getItem().equals(nomesProfBanco.get(i))) {
try{
connection.conectar();
onnection.stm.executeUpdate(“INSERT INTO professor (nome) VALUES(’” +cbProf.getName()+"’)");
}catch (SQLException e) {
JOptionPane.showMessageDialog(null,"Erro no comando SQL " + e.getMessage());
}
}
}

       }[/code]

Esse erro que está dando deve ser pelo seguinte. Você faz a query select fora do while. Aí você entra no while, e faz OUTRA conexão com o banco usando o mesmo objeto (connection). Aí quando ele entra no while novamente, ele não consegue acessar o ResultSet. Será que não é no momento em que você faz uma nova conexão que você perde os seus dados do ResultSet?

Abraços

Sugiro até uma abordagem um pouco diferente… Quando ler os nomes do banco pra carregar no combo, guarde-os primeiro num ArrayList, por exemplo. Aí, ao invés de ir lá no banco consultar antes de inserir, verifique no ArrayList!! E outra coisa: dê uma olhada em PreparedStatement, ao invés de dar esse insert do jeito que está indo, pra evitar o “complexo contra Joana D’arc”.

Valeu galera!
Obrigado pelas dicas.