簡體   English   中英

無法使用JDBC插入表中

[英]Can not insert into a table using JDBC

當我在mysql中使用時,以下查詢成功

INSERT INTO user(`dev_id`,`email`) VALUES('123','456@gmail.com');

但是在java jdbc中,我得到了這個異常:

Can not issue data manipulation statements with executeQuery().
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)
    at com.mysql.jdbc.Statement.checkForDml(Statement.java:417)
    at com.mysql.jdbc.Statement.executeQuery(Statement.java:1140)

我的表有5列,而3列的默認值為= null;

executeQuery僅用於發布查詢語句。 您需要將executeUpdate用於插入,該插入用於修改數據的語句(如INSERT )。 理想情況下,您還應該使用PreparedStatement

而不是executeQuery()嘗試使用execute()executeUpdate()

如果u正在發出INSERT/UPDATE/DELETE語句,而不是用於執行SELECT語句的executeQuery() ,則調用executeUpdate()

您應該使用executeUpdate()而不是executeQuery() JavaDoc:

執行給定的SQL語句,該語句可以是INSERT,UPDATE或DELETE語句,也可以是不返回任何內容的SQL語句,例如SQL DDL語句。

注意:不能在PreparedStatement或CallableStatement上調用此方法。

參數:sql-SQL數據操作語言(DML)語句,例如INSERT,UPDATE或DELETE; 或不返回任何內容的SQL語句,例如DDL語句。

同樣,只要出現問題,請檢查javadoc並首先嘗試使用Google谷歌搜索。 對於您的情況,Stackoverflow有點微妙。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM