[英]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.