una sirven que para mostrar llenar interfaz grafica datos con codigos java mysql jdbc

java - sirven - No se pueden emitir instrucciones de manipulación de datos con executeQuery()



llenar un jtable con datos de una base de datos sql server (7)

En MySQL tengo dos tablas, tableA y tableB . Estoy intentando ejecutar dos consultas:

executeQuery(query1) executeQuery(query2)

Pero me sale el siguiente error:

can not issue data manipulation statements with executeQuery().

¿Qué significa esto?


Además de executeUpdate () entre paréntesis, también debe agregar una variable para usar una declaración SQL.

Por ejemplo:

PreparedStatement pst = connection.prepareStatement(sql); int numRowsChanged = pst.executeUpdate(sql);


Al ejecutar una declaración DML, debe usar executeUpdate / execute vez de executeQuery .

Aquí hay una breve comparación:


Este código funciona para mí: establezco valores con un INSERT y obtengo el LAST_INSERT_ID () de este valor con SELECT; Uso java NetBeans 8.1, MySql y java.JDBC.driver

try { String Query = "INSERT INTO `stock`(`stock`, `min_stock`, `id_stock`) VALUES (" + "/"" + p.get_Stock().getStock() + "/", " + "/"" + p.get_Stock().getStockMinimo() + "/"," + "" + "null" + ")"; Statement st = miConexion.createStatement(); st.executeUpdate(Query); java.sql.ResultSet rs; rs = st.executeQuery("Select LAST_INSERT_ID() from stock limit 1"); rs.next(); //para posicionar el puntero en la primer fila ultimo_id = rs.getInt("LAST_INSERT_ID()"); } catch (SqlException ex) { ex.printTrace;}


ExecuteQuery espera un conjunto de resultados. No estoy tan familiarizado con Java / MySQL, pero para crear índices es probable que desee un ExecuteUpdate ().



Para manipular datos, realmente necesita executeUpdate() lugar de executeQuery() .

Aquí hay un extracto del javadoc executeUpdate() que ya es una respuesta propia:

Ejecuta la instrucción SQL dada, que puede ser una instrucción INSERT, UPDATE o DELETE o una instrucción SQL que no devuelve nada, como una instrucción SQL DDL.


Use executeUpdate() para emitir instrucciones de manipulación de datos. executeQuery() solo está destinado a consultas SELECT (es decir, consultas que devuelven un conjunto de resultados).