使用JDBC无法向表中插入数据

3
我在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;


错误信息非常清晰明了,不是吗? - user330315
4个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
5

executeQuery只用于发出查询语句。对于插入操作,您需要使用executeUpdate,它是用于修改数据的语句(例如INSERT)。最好还应该使用PreparedStatement


3

建议尝试使用 execute() executeUpdate() 替代 executeQuery()


1

如果您正在发出INSERT/UPDATE/DELETE语句而不是执行SELECT语句,则调用executeUpdate(),而不是executeQuery()


1

在编程中,你应该使用executeUpdate()而不是executeQuery()。JavaDoc:

执行给定的SQL语句,它可以是INSERT,UPDATE或DELETE语句,也可以是返回空值的SQL语句,如SQL DDL语句。

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

参数:       sql - SQL数据操作语言(DML)语句,例如INSERT、UPDATE或DELETE;或返回空值的SQL语句,如DDL语句。

每当出现问题时,请首先检查JavaDoc并尝试搜索谷歌。对于你的情况,Stackoverflow有点棘手。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,