[英]SQLException: invalid cursor state
为什么我的查询中出现SQLException
?
PreparedStatement stmt = con.prepareStatement("SELECT note FROM NOTES4EME WHERE id=?");
stmt.setString(1,"1");
ResultSet a = stmt.executeQuery();
return a.getInt(1);
我想念什么?
我有一种方法:
public int afficheNote(int id) throws ClassNotFoundException, SQLException {
Class.forName("org.apache.derby.jdbc.ClientDriver");
String url = "jdbc:derby://localhost:1527/TLdb;create=true;user=root;password=root";
Connection con = DriverManager.getConnection(url);
String query = "SELECT NOTES FROM NOTES4EME WHERE ID = '" + id + "'";
//PreparedStatement stmt = con.prepareStatement(query);
PreparedStatement stmt = con.prepareStatement("SELECT note FROM NOTES4EME WHERE id=?");
stmt.setString(1,"1");
ResultSet a = stmt.executeQuery();
if (a.next()) {
return a.getInt(1);
}
return -1;
}
我在.JSP中调用此方法:
<%
int a = mybean.afficheNote(1);
%>
在调用getInt
之前先调用next
ResultSet a = stmt.executeQuery();
if (a.next()) {
return a.getInt(1);
} else {
throw new IllegalArgumentException("Nothing found for 1...");
}
ResultSet
Javadoc说(部分) 最初是将光标放置在第一行之前。 因此,您需要致电next
。 添加类似
if (a.next()) {
return a.getInt(1);
}
return -1;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.