JAVA:数据库结果集始终返回零行
我通过使用存根验证了驱动程序正在加载,并且正在建立连接。我的查询数据库的方法正在执行,没有错误,但返回了一个5列0行的空结果集,我通过调试进行了验证。测试数据库中有4条记录,共5列,我的查询要求返回所有结果。我可能只是累了。。。对我遗漏的东西有什么见解吗?下面是查询方法。数据库文件是access.mdb 公共数组列表结果 { ArrayList savedData=新的ArrayList; 语句stmt=null; ResultSet results=nullJAVA:数据库结果集始终返回零行,java,database,Java,Database,我通过使用存根验证了驱动程序正在加载,并且正在建立连接。我的查询数据库的方法正在执行,没有错误,但返回了一个5列0行的空结果集,我通过调试进行了验证。测试数据库中有4条记录,共5列,我的查询要求返回所有结果。我可能只是累了。。。对我遗漏的东西有什么见解吗?下面是查询方法。数据库文件是access.mdb 公共数组列表结果 { ArrayList savedData=新的ArrayList; 语句stmt=null; ResultSet results=null try {
try
{
stmt = conn.createStatement();
results = stmt.executeQuery(SELECT_ALL);
while(results.next())
{
for(short i = 0; i < 5; i++)
{
savedData.add(results.getString(i));
}
}
}
catch(SQLException ex)
{
JOptionPane.showMessageDialog(null, ex.getMessage() + ": error during retrieval.");
}
finally
{
try
{
results.close();
stmt.close();
} catch (SQLException e){}
}
return savedData;
}
您不应返回ResultSet。持久性类中不应包含Swing JOptionPane 试着这样做:
package persistence;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class JdbcDemo
{
private static final String SELECT_SAVED_DATA = "select * from saveData";
private Connection connection;
public JdbcDemo(Connection connection)
{
this.connection = connection;
}
public List<String> getSavedData() throws SQLException
{
List<String> savedData = new ArrayList<String>();
Statement stmt = null;
ResultSet rs = null;
try
{
stmt = this.connection.createStatement();
rs = stmt.executeQuery(SELECT_SAVED_DATA);
while (rs.next())
{
savedData.add(rs.getString(1)); // modify this as needed
}
}
finally
{
DatabaseUtils.close(rs);
DatabaseUtils.close(stmt);
}
return savedData;
}
}
请仔细检查您使用的数据库是否正确。迭代结果集的代码看起来如何?whileresults.next{forshort i=0;i<5;i++{savedData.addresults.getStringi;}第一列有索引1,而不是0。我尝试了getStringi和getStringi+1。这并没有改变结果集有0行的事实。我仍然得到相同的结果集,返回5列0行。只是为了检查,我修改了查询以仅返回2列;然后结果集返回2列0行。如果您可以登录到数据库,我将丢失使用另一个客户端并查看行,则表明您没有连接到您认为是的数据库。检查您的连接URL,并确保您可以查看其他客户端的行。检查您的假设-当它们与您认为应该得到的不匹配时,它会说您在用错误的假设愚弄自己。连接wait’很好。我放弃了你发布的内容,重新开始,它起了作用。对我来说不太有意义。出于好奇,我再次尝试在返回时发送结果集,但仍然不起作用。我不明白。但我现在已经开始工作了,没有问题