错误 "ResultSet closed"
Error "ResultSet closed"
为什么我会收到此错误:
Error :java.sql.SQLException: ResultSet closed
来自此代码:
try{
ArrayList<String> longArray = new ArrayList<String>();
longArray.add("12345678912"); // All column in sqlite database are "text" so that's why I create String List
longArray.add("12345678911");
System.out.println(longArray);
String parameters = StringUtils.join(longArray.iterator(),",");
connection = sqliteConnection.dbConnector();
PreparedStatement pst=connection.prepareStatement("select columnA from TableUser where id in (?)");
pst.setString(1, parameters );
ResultSet rs = pst.executeQuery();
System.out.println(rs.getString("columnA")); // did not print anything, probably rs is empty
rs.close();
数据库详细信息:
我在数据库中有一个 table TableUser
,其中有一列 "id" 作为文本。
另一个问题:数据库中的值 12345678912
(TEXT) 是否与 longArray.add("12345678912")
相同?
您在检索 ResultSet
后遗漏了 if(rs.next())
或 while(rs.next())
。
关于你的另一个问题...是的,他们都是 Strings
不是吗?
编辑:
问题本质上是试图将多个参数放入 PreparedStatement
中的 IN
语句中。参见 PreparedStatement IN Clause Alternatives
为什么我会收到此错误:
Error :java.sql.SQLException: ResultSet closed
来自此代码:
try{
ArrayList<String> longArray = new ArrayList<String>();
longArray.add("12345678912"); // All column in sqlite database are "text" so that's why I create String List
longArray.add("12345678911");
System.out.println(longArray);
String parameters = StringUtils.join(longArray.iterator(),",");
connection = sqliteConnection.dbConnector();
PreparedStatement pst=connection.prepareStatement("select columnA from TableUser where id in (?)");
pst.setString(1, parameters );
ResultSet rs = pst.executeQuery();
System.out.println(rs.getString("columnA")); // did not print anything, probably rs is empty
rs.close();
数据库详细信息:
我在数据库中有一个 table TableUser
,其中有一列 "id" 作为文本。
另一个问题:数据库中的值 12345678912
(TEXT) 是否与 longArray.add("12345678912")
相同?
您在检索 ResultSet
后遗漏了 if(rs.next())
或 while(rs.next())
。
关于你的另一个问题...是的,他们都是 Strings
不是吗?
编辑:
问题本质上是试图将多个参数放入 PreparedStatement
中的 IN
语句中。参见 PreparedStatement IN Clause Alternatives