java:不支持使用executeQuery(字符串)方法错误?
我正在执行一个简单的preparedstatement查询,它会引发以下错误: java.sql.SQLException:net.sourceforge.jtds.jdbc.jtdsprearedstatement.notSupported(jtdsprearedstatement.java:197)中的net.sourceforge.jtds.jdbc.jtdsprearedstatement.executeQuery(jtdsprearedstatement.java:822)中的此类语句不支持使用executeQuery(string)方法,testconn.itemcheck(testconn.java:58) 知道我做错了什么吗?提前谢谢 代码如下:java:不支持使用executeQuery(字符串)方法错误?,java,sql-server,Java,Sql Server,我正在执行一个简单的preparedstatement查询,它会引发以下错误: java.sql.SQLException:net.sourceforge.jtds.jdbc.jtdsprearedstatement.notSupported(jtdsprearedstatement.java:197)中的net.sourceforge.jtds.jdbc.jtdsprearedstatement.executeQuery(jtdsprearedstatement.java:822)中的此类语句
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
有几点值得检查:
con.preparest陈述(查询)中使用它代码>即准备报表就足够了
PreparedStatement pstmt = con.prepareStatement(query);
pstmt.setString(1,itemid);
java.sql.ResultSet rs = pstmt.executeQuery(query);
与语句
不同,使用PreparedStatement
可以在创建查询sql时传递查询sql(通过连接
对象)。您正在这样做,但是当您调用executeQuery(查询)
时,您也再次传递了它
使用为PreparedStatement定义的
所以
关于第二点。。。就连我也犯了同样的错误。谢谢你节省了我很多时间
PreparedStatement pstmt = con.prepareStatement(query);
pstmt.setString(1,itemid);
java.sql.ResultSet rs = pstmt.executeQuery();