jfinal的批量查询

SkyHero123 发布于 10/11 17:08
阅读 128
收藏 0

@jfinal     

jfinal有没有能满足如下的批量查询的方法?

表中有个字段不是主键,比如叫batchcode,但是batchcode共有几万条。本来想用string拼接后作为查询条件用in方式查询的,可是这样长度太长了,java和数据库都不允许达到这个长度。只好放在list中,但是目前我只能循环查询,这样数据库不断操作数据库,效率太慢,有没有方法,我一下子根据几万个batchcode查询出所有结果?或者分批次执行,这样减少数据库操作。

加载中
0
格力高
格力高
循环查询干嘛要频繁开关链接?一次查询几万个key,要求本就不合理,还是先梳理下业务的逻辑需求吧
S
SkyHero123
不一定要几万条一起执行,可以几百条执行,几百条执行,也比1个个执行快多了啊。我先是想,根据batchCode批量查询出某个model类的所有数据的1个list。但是目前没发现方法而已,更新、插入、删除等倒是有。
S
SkyHero123
你没明白我的意思,循环查询,就是每条数据库语句查询,针对这个,我不是说数据库连接池的关闭连接,我的意思是说,j循环执行,每次都会发给数据库sql,数据库会及时执行,这样会频繁操作数据库,效率很低下。如果你能把这些语句全部1下子给数据库,那么这样就减少了对数据库的操作,效率大大提高。你没有做过sql的批量处理吗?无语。
0
格力高
格力高

你这个需求,用in等方法怎么做都是慢,sql对这种优化很难处理。你可以采用临时表的方式,然后做表关联查询。

0
格力高
格力高

另外,“如果你能把这些语句全部1下子给数据库,那么这样就减少了对数据库的操作,效率大大提高。” 这还真不见得,大多时候拆分开的多次查询,比一个大的复杂sql要快。

S
SkyHero123
如果你有5000条数据,你1个个查询肯定不如500个500个的效率高啊。
返回顶部
顶部