关于java.sql.resultset的问题

关于java.sql.resultset的问题,java,jdbc,Java,Jdbc,我有一个关于jdbcResultset的问题 我需要在其中一张桌子里拿些唱片。检索记录后,如何在ResultSet中搜索具有ID列表的记录 我应该先将结果集转换为哈希映射吗?假设您不想修改SQL查询,首先只检索这些结果,然后将结果转换为更有用的数据结构(例如,为每个记录创建一个对象,然后按ID将其存储在哈希映射中),这是一种很好的方法,是的。将结果集视为数据库的一种接口,结果集本身不包含任何数据,因此没有太多可搜索的内容 所以如果你需要操纵,搜索。。。最好将所有数据读入一个结构中 哈希结构可能是

我有一个关于jdbc
Resultset
的问题

我需要在其中一张桌子里拿些唱片。检索记录后,如何在ResultSet中搜索具有ID列表的记录


我应该先将结果集转换为哈希映射吗?

假设您不想修改SQL查询,首先只检索这些结果,然后将结果转换为更有用的数据结构(例如,为每个记录创建一个对象,然后按ID将其存储在哈希映射中),这是一种很好的方法,是的。

将结果集视为数据库的一种接口,结果集本身不包含任何数据,因此没有太多可搜索的内容

所以如果你需要操纵,搜索。。。最好将所有数据读入一个结构中

哈希结构可能是最好的,但这取决于数据的结构


唯一不应该做的事情是在ResultSet上进行多次交互,因为除非使用特定的缓存实现,否则将导致大量不必要的数据库流量

您可以借助“next()”[ResultSet.next()]方法通过循环遍历ResultSet。使用getString()、getInt()、获取值

例: 让R成为我的结果集

while(rs.next()){

S.o.p(“名称:”+rs.getString(“名称”)); S.o.p(“年龄:+rs.getInt(“年龄”));
}我同意HashMap可以工作。如果记录的数量很大,您可以通过不将ResultSet数据加载到任何结构中来节省时间和内存。如果在查询中按ID排序,则可以使用
rs.next()直接从结果集获取数据很容易

检索记录后,如何在ResultSet中搜索具有ID列表的记录

这是错误的做法。在获取结果集之前,应该在SQL查询中进行搜索和筛选

然后,假设您得到了
结果集rs
,使用

while (rs.next()) {
   // do whatever you want with results
}

在结果集上进行搜索->糟糕的做法。

在查询中自己进行搜索,了解
WHERE
子句,如果我正确理解了您的功能需求,也了解
in
子句中的
<代码>从表名中选择*,其中id位于(1、2、3、4、5、6、7、8、9)
。另见。这样,您就可以在Java代码中获得所需的行,而不会将整个数据库复制到Java内存中,并可能由于内存不足而导致Java应用程序死机。