Olá, estou desenvolvendo um projeto que envolve o uso do mySql, a conecção já esta tudo ok, consigo extrair informações usando:
resultSet = statement.executeQuery("SELECT...");
[/code] No entanto, fui tentar inserir valores na tabela e deu errado, é estranho porque se eu digitar no console do mysql: INSERT INTO notejavabook (commitment,date) VALUES('test','2011-11-11'); ele aceita de boa. Mas se eu fazer :
[code] resultSet = statement.executeQuery("INSERT INTO notejavabook (commitment,date) VALUES('test','2011-11-11')");
Da o seguinte erro: Can not issue data manipulation statements with executeQuery();
Já falaram para eu usar o PreparedStatement, neste instante estou buscando informações sobre ele. Mas, desejo saber o porque está dando erro da forma q eu estou tentando.
Flw!
o executeQuery retorna um resultset, e recebe uma consulta SQL. O INSERT, UPDATE e DELETE são comandos de manipylação de dados, e não retornam resultados (não como um select, eles retornam geralmente o nº de linhas afetados pela instrução. Por isso não funciona com executeQuery.
Para utilizar esses comandos, vc tem que utilizar executeUpdate, que é para comandos de atualização, e retorna um int, com o número de tuplas afetados pelo0 comando.