【问题标题】:java.sql.SQLException: SQL string is not Query in glassfish serverjava.sql.SQLException:SQL 字符串不是 glassfish 服务器中的查询
【发布时间】: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


【解决方案1】:

GlassFish 服务器内部有 ojdbc7dms.jar,它不允许执行 DML 操作的 executeQuery() 方法。 正因为如此,我们才得到 ​​p>

java.sql.SQLException: SQL 字符串不是查询异常

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-31
    • 2018-07-02
    • 1970-01-01
    • 1970-01-01
    • 2012-11-13
    • 2023-03-28
    • 1970-01-01
    相关资源
    最近更新 更多