传入一个 List<Integer> 怎么获得一个对应顺序的 List<XXBean>

绿悠悠 发布于 2011/08/16 10:56
阅读 1K+
收藏 1

【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”

我的方法接受一个 List<Integer> 参数,该列表包含对象id的序列,例如 8,1,2,3,5 ,方法体中我对这些 id 到数据库查到相应的对象XXBean ,为了降低SQL查询的次数,我使用了

SELECT * FROM xxxx WHERE id IN (?,?,?,?,?)

这样的语句一次性查出所有的对象,该查询返回 XXBean 的对象列表,但其顺序却跟我的 List<Integer> 里的id 顺序不同。

有什么方法可以保证传入的 List<Integer> 与结果中的 List<XXBean> 的顺序是一致的呢?

加载中
0
红薯
红薯

这问题很简单

假设 List<Integer> 参数名为 i_list

在方法体内先构造一个跟 List<Integer> 大小一样的 List<XXBean> 对象 beans

然后执行查询,再依次读取每个 XXBean 根据其 id 值取得该对象在 List<Integer> 中的位置,假设该位置值是 pos,然后调用 beans.set(pos, obj);

0
高东
高东

可以先找出来用select ...in 找出你要的那些列,然后对你给定的list<integer>来排序。这样就可以降低SQL查询次数

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部