在MySQL中,我有两个表tableA
和tableB
。我试图执行两个查询:无法使用executeQuery()发出数据操作语句
executeQuery(query1)
executeQuery(query2)
,但我得到了以下错误:
can not issue data manipulation statements with executeQuery().
这是什么意思?
在MySQL中,我有两个表tableA
和tableB
。我试图执行两个查询:无法使用executeQuery()发出数据操作语句
executeQuery(query1)
executeQuery(query2)
,但我得到了以下错误:
can not issue data manipulation statements with executeQuery().
这是什么意思?
要操纵您实际需要的数据executeUpdate()
而不是executeQuery()
。
下面是来自executeUpdate()
javadoc中的提取物已经在自己的一个答案:
Executes the given SQL statement, which may be an INSERT, UPDATE, or DELETE statement or an SQL statement that returns nothing, such as an SQL DDL statement.
这就是executeUpdate
是。
区别在这里的一个非常简短的总结:http://www.coderanch.com/t/301594/JDBC/java/Difference-between-execute-executeQuery-executeUpdate
我刚刚阅读了链接,内容非常丰富,谢谢。 – 2017-06-26 11:06:55
的executeQuery预期的结果集。我不熟悉Java/MySQL,但创建索引可能需要ExecuteUpdate()。
它不期望一个'ResultSet'。它而是**返回**一个'ResultSet'。 – BalusC 2009-12-15 06:48:27
它期望来自数据库的结果集是我的意思。 – 2009-12-15 13:46:51
使用executeUpdate()
发出数据操作语句。 executeQuery()
仅适用于SELECT查询(即返回结果集的查询)。
除了圆括号上的executeUpdate(),还必须添加一个变量才能使用SQL语句。
例如:
PreparedStatement pst = connection.prepareStatement(sql);
int numRowsChanged = pst.executeUpdate(sql);
你好!作为提醒,Stack Overflow的问题和答案必须用英文书写(否则他们有被删除和/或谷歌翻译的风险)。干杯! (_Hola!Como las cabezas para arriba,las preguntas y respuestas sobre Stack Overflow debe estar escrito enInglés(de lo contrario corren el riesgo deeliminacióny/o Google Traductor)。Salud!_) – 2015-03-23 21:54:50
此代码的工作对我来说:我设定值白衣的INSERT并获得LAST_INSERT_ID()的这个数值丝毫一个SELECT;我使用java NetBeans 8.1,MySql和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;}
除了通过JDBC - MySQL管理员以外,您是否有任何访问MySQL的权限?或命令行? – 2009-12-15 06:46:42
我有权访问mysql管理员。然而要求是这样的。 MySQL数据库将被创建,修改,更新等使用MySQL管理员,但之后,所有的操作都需要用java来完成。 – silverkid 2009-12-15 06:52:54
更好的方式是将索引创建包括在脚本中以创建数据库,而不是通过JDBC,可能在您已经使用它们之后。 – 2009-12-15 06:56:49