无法使用 executeQuery() 发出数据操作语句 [重复]
Posted
技术标签:
【中文标题】无法使用 executeQuery() 发出数据操作语句 [重复]【英文标题】:Can not issue data manipulation statements with executeQuery() [duplicate] 【发布时间】:2015-09-04 03:38:15 【问题描述】:我正在向我的数据库注入 JSON 文件,并尝试在插入路线和方向(以及插入的方向和路线记录)后从 routes
表中获取 route_id
。我已将prep.executeUpdate()
更改为prep.executeQuery()
,但出现此错误:
java.sql.SQLException:无法使用 executeQuery() 发出数据操作语句。 在 com.mysql.jdbc.SQLError.createSQLException(SQLError.java:998) 在 com.mysql.jdbc.SQLError.createSQLException(SQLError.java:937)
代码:
DatabaseMetaData dbm = con.getMetaData();
ResultSet routesTables = dbm.getTables(null, null, "routes", null);
if (routesTables.next())
PreparedStatement prep = con
.prepareStatement("INSERT INTO routes(direction, route)"
+ "VALUES( ?, ?)");
prep.setString(1, direction);
prep.setInt(2, route);
ResultSet rs = prep.executeQuery();
在这种情况下如何获取 route_id ResultSet rs = prep.executeQuery();
?目前我收到上述错误。
感谢您的帮助。
【问题讨论】:
【参考方案1】:您必须调用prep.executeUpdate();
来获取插入语句。
不是ResultSet rs = prep.executeQuery();
。 prep.executeQuery();
仅适用于选择查询。
【讨论】:
然后我可以得到route_id
这样的int rs = prep.executeUpdate();
?
@light 不,你在 rs 中得到了 effected rows
如果你需要 id 看这里***.com/questions/1915166/…以上是关于无法使用 executeQuery() 发出数据操作语句 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 executeQuery() 发出数据操作语句 [重复]
java.sql.SQLException:无法使用 executeQuery() 发出数据操作语句。 23
无法使用 executeQuery() 发出数据操作语句 [重复]
SQLException:“无法使用 executeQuery() 发出数据操作语句”[重复]
无法从 Statement.executeQuery() 中获取选定的列
Can not issue data manipulation statements with executeQuery() 异常处理