Cursor state not valid

1 resposta
L

Ola pessoal,
Estou recebendo o seguinte erro na minha conexao :

java.sql.SQLException: Cursor state not valid.

Por favor algume me pode ajudar ? eis o meu codigo.

String sql_query = "INSERT INTO TABELA(CAMPO1, CAMPO2, CAMPO3) VALUES ( ? , ? , ? )";  
                
                try {
                    
                    Class.forName(driver);
                    Connection connection = DriverManager.getConnection(URL);
                    PreparedStatement prepared_statement = connection.prepareStatement(sql_query);
                    
                    int i ;
                    
                    for(i = 0; i < 10; i++) {
                        
                        String u = (String)ptabela.getValueAt(i, 0);
                        String uu = ptabela.getValueAt(i, 1).toString().trim();
                        String uuu = ptabela.getValueAt(i, 2).toString().trim();
                        System.out.println(u);
                        System.out.println(uu);
                        System.out.println(uuu);
 
                        
                        
                        prepared_statement.setString(1, u);
                        prepared_statement.setString(2, uu);
                        prepared_statement.setString(3, uuu);
                        ResultSet rs = prepared_statement.executeQuery(); 
                    }
                   
                    
                    
                 
                } catch (Exception ex) {
                    
                    ex.printStackTrace();
                    
                }

O meu banco de dados escreve apenas um registo e depois me manda essa mensagem.

Eu sei que a minha tabela aonde apanho os valores para colocar no banco de dados tem mais de 500 registos, mas eu so estou querendo colocar os 10 primeiros. mas este codigo so me coloca o primeiro e me lança a excepção java.sql.SQLException: Cursor state not valid.

Obrigado desde ja !

1 Resposta

P

eu creio que fazendo assim do jeito que vc fez, colocando o PreparedStatement fora do for, setando os parametros dentro do for e chamando o execute dentro do for, so funcionara na primeira vez do for,

nas outras iteracoes ele se perdera, pois o executeQuery executara a query com os parametros passados anteriormente

tenta outra solucao cara, passar um list na sua RN com a iteracao, e no DAO vc so faz a insercao, manja?

Criado 12 de outubro de 2007
Ultima resposta 15 de out. de 2007
Respostas 1
Participantes 2