Java 无法使用executeQuery()发出数据操作语句

Java 无法使用executeQuery()发出数据操作语句,java,jdbc,Java,Jdbc,我正在向数据库中注入JSON文件,并尝试在插入路由和方向(以及插入的方向和路由记录)后从routes表中获取route\u id。我已将prep.executeUpdate()更改为prep.executeQuery(),但我收到以下错误: java.sql.SQLException:无法使用executeQuery()发出数据操作语句。 位于com.mysql.jdbc.SQLError.createSQLException(SQLError.java:998) 位于com.mysql.jdb

我正在向数据库中注入JSON文件,并尝试在插入路由和方向(以及插入的方向和路由记录)后从
routes
表中获取
route\u 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();


            }
在这种情况下,如何获取路由_id
ResultSet rs=prep.executeQuery()?目前我得到上面的错误


非常感谢您的帮助。

您必须致电
prep.executeUpdate()。

ResultSet rs=prep.executeQuery()<代码>准备执行任务()
仅用于选择查询。

然后我可以像这样获取
route\u id
int rs=prep.executeUpdate()?@light否如果您需要id,请在RSI中获得受影响的
,请参见此处