java : use of executeQuery(string) method not supported error?

标签 java sql-server

我正在执行一个简单的准备好的语句查询,它向我抛出此错误: java.sql.SQLException:net.sourceforge.jtds.jdbc.JtdsPreparedStatement.notSupported(JtdsPreparedStatement.java:197) 的此类语句不支持使用executeQuery(string) 方法。 JtdsPreparedStatement.executeQuery(JtdsPreparedStatement.java:822) 在 testconn.itemcheck(testconn.java:58)

你知道我做错了什么吗?提前致谢 这是代码:

private static int itemcheck (String itemid ) { 
  String query;
  int count = 0;
  try { 
   Class.forName("net.sourceforge.jtds.jdbc.Driver");
        con = java.sql.DriverManager.getConnection(getConnectionUrl2());
   con.setAutoCommit(false);
   query = "select count(*) as itemcount from timitem where itemid like ?";

   //PreparedStatement pstmt = con.prepareStatement(query); 
   //pstmt.executeUpdate(); 

   PreparedStatement pstmt = con.prepareStatement(query);
   pstmt.setString(1,itemid);
   java.sql.ResultSet rs = pstmt.executeQuery();



   while (rs.next()) {
     count = rs.getInt(1);
    System.out.println(count);
   } //end while 



  }catch(Exception e){ e.printStackTrace(); } 

  return (count);

} //end itemcheck 

最佳答案

有几件事值得检查:

  1. 使用不同的别名。使用 COUNT 作为别名会带来麻烦。
  2. 查询对象不需要传递两次,一次是在准备语句期间,一次是在执行期间。在 con.prepareStatement(query); 中使用它,即语句准备,就足够了。

附录

jTDS 是否支持为PreparedStatement 使用String arg 方法值得怀疑。基本原理是,PreparedStatement.executeQuery() 似乎已实现,而 Statement.executeQuery(String) 似乎已在PreparedStatement.executeQuery() 中被重写以抛出所述异常。

关于java : use of executeQuery(string) method not supported error?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55776469/

相关文章:

新 docker 容器上的 java.lang.ClassNotFoundException : Unable to load class: com. microsoft.sqlserver.jdbc.SQLServerDriver

sql - 在所有存储过程中搜索模式然后打开它进行更改的方法

c# - 报告架构

java - 如何告诉 hibernate validator 仅验证一个注释?

使用 javac 对同一 jar 成功编译后,java 在 jar 中找不到类

java - 如何在 Java 中使用 wkhtmlpdf 将 HTML 文件转换为 PDF

c# - 使用存储过程或 C# 同步 SQL Server 2014 和 SQL Server 2014 Express 数据库

java - 如何在没有副作用的情况下提供有意义的验证错误反馈?

Java命令行,无响应

java - 如何从 catch 语句中的 Java 异常对象中检索多个 SSMS 查询错误消息?