在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