java.sql.SQLException:SQL 字符串不是 glassfish 服务器中的查询
Posted
技术标签:
【中文标题】java.sql.SQLException:SQL 字符串不是 glassfish 服务器中的查询【英文标题】:java.sql.SQLException: SQL string is not Query in glassfish server 【发布时间】: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 中工作”,那你就大错特错了,而且是在浪费时间。 【参考方案1】:GlassFish 服务器内部有 ojdbc7dms.jar,它不允许执行 DML 操作的 executeQuery() 方法。 正因为如此,我们才得到 p>
java.sql.SQLException: SQL 字符串不是查询异常
【讨论】:
以上是关于java.sql.SQLException:SQL 字符串不是 glassfish 服务器中的查询的主要内容,如果未能解决你的问题,请参考以下文章
Cause: java.sql.SQLException: 请求的转换无效 ; uncategorized SQLException for SQL []; SQL state [99999]; er
Oracle DB:java.sql.SQLException:关闭连接
java.sql.SQLException: ORA-00604: 递归 SQL 级别 1 发生错误
java.sql.SQLException:接近“on”:语法错误问题