我去你妈的JDBC

2019-06-22  本文已影响0人  杨康他兄弟

当我们面对 postgresql 数据库时,如果需要对一张大表使用select * from fuckTable
,此时我们为了避免一次性查询所有数据,需要设置游标的fetchSize。但是往往这里不会生效,原因如下:

1、如果connection不是自动提交事务的,那么,fetchSize将生效(非默认)

2、如果statement是TYPE_FORWARD_ONLY的,那么,fetchSize也将生效(默认)

如果想fetchSize生效,必须保证connection是autocommit = false的,并且,statement为1003(forward_only)的:

conn.setAutoCommit(false);

final Statement statement = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.FETCH_FORWARD);

上一篇 下一篇

猜你喜欢

热点阅读