在 MyBatis 中处理大量数据
我的目标实际上是将数据库的所有数据转储到 XML 文件中。数据库不是很大,大约是300MB。问题是我的内存限制仅为256MB(在JVM中)。所以很明显,我不能把所有东西都读进记忆里。
我设法使用iBatis(是的,我的意思是iBatis,而不是myBatis)通过多次调用它来解决这个问题,并递增。这确实解决了我的记忆问题,但我对速度印象不深。变量名称表明,该方法在后台执行的操作是读取整个结果集跳过,然后执行指定的记录。这对我来说听起来很多余(我不是说这就是方法正在做的事情,我只是根据变量名称猜测)。getList(... int skip, int max)
skip
现在,我切换到myBatis 3作为我的应用程序的下一个版本。我的问题是:有没有更好的方法来处理myBatis中的大量数据块?是否无论如何都要使myBatis进程前N条记录,将它们返回给调用方,同时保持结果集连接打开,以便下次用户调用getList(...)时,它将开始从N + 1记录读取而不执行任何“跳过”?