jfinal的批量查询
jfinal有没有能满足如下的批量查询的方法?
表中有个字段不是主键,比如叫batchcode,但是batchcode共有几万条。本来想用string拼接后作为查询条件用in方式查询的,可是这样长度太长了,java和数据库都不允许达到这个长度。只好放在list中,但是目前我只能循环查询,这样数据库不断操作数据库,效率太慢,有没有方法,我一下子根据几万个batchcode查询出所有结果?或者分批次执行,这样减少数据库操作。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
如果你有5000条数据,你1个个查询肯定不如500个500个的效率高啊。
你这个需求,用in等方法怎么做都是慢,sql对这种优化很难处理。你可以采用临时表的方式,然后做表关联查询。
你没明白我的意思,循环查询,就是每条数据库语句查询,针对这个,我不是说数据库连接池的关闭连接,我的意思是说,j循环执行,每次都会发给数据库sql,数据库会及时执行,这样会频繁操作数据库,效率很低下。如果你能把这些语句全部1下子给数据库,那么这样就减少了对数据库的操作,效率大大提高。你没有做过sql的批量处理吗?无语。
不一定要几万条一起执行,可以几百条执行,几百条执行,也比1个个执行快多了啊。我先是想,根据batchCode批量查询出某个model类的所有数据的1个list。但是目前没发现方法而已,更新、插入、删除等倒是有。
循环查询干嘛要频繁开关链接?一次查询几万个key,要求本就不合理,还是先梳理下业务的逻辑需求吧