【发布时间】:2017-08-29 06:58:37
【问题描述】:
我们使用 executeQuery() 使用 java 代码删除表中的数据。当我们使用 Eclipse 运行程序时,它能够正确删除,但是在构建源代码并部署在 glassfish 服务器时出现错误。
java.sql.SQLException: SQL string is not Query
意思是,我们不应该将executeQuery() 用于 DML 操作。如果是这种情况,它甚至不应该在 eclipse 中工作。
下面是我的代码:
PreparedStatement deletePreparedStmt = null;
String sql = "DELETE FROM emp WHERE eno = ?";
try
{
deletePreparedStmt = con.prepareStatement(sql);
deletePreparedStmt.setInt(1,50);
deletePreparedStmt.executeQuery();
con.commit();
}
catch(Exception e)
{
e.printStackTrace();
}
谁能澄清一下?
【问题讨论】:
-
把代码贴在问题里会更好
-
executeQuery() 需要一个 select 语句。使用 executeUpdate()。
-
是的,我知道。我会使用。但是为什么它在 Eclipse 中工作呢?
-
它在 Eclipse 中不起作用。做出决定的是驱动程序,所以要么您在 Eclipse 中使用非标准驱动程序,您的环境完全不同,要么您只是感到困惑并认为它在 Eclipse 中工作。跨度>
-
没有一个像样的驱动程序会让它飞起来,所以如果你仍然认为它是“在 Eclipse 中工作”,那你就大错特错了,而且是在浪费时间。
标签: java oracle jdbc glassfish ojdbc