关于mysql的useCursorFetch参数

由于用到mysql的游标,希望可以一次返回10条记录(防止OOM),为连接串里加上了useCursorFetch参数(有人要问为什么不用流式,因为我的连接不是用完就能关的,但如果不关,在流式返回后再使用同一连接就要报错)。于是问题来了。

jdbc:mysql://x.x.x.x:3306/abc?rewriteBatchedStatements=true&useCursorFetch=true


1、如果使用预编译的SQL,问号的个数不能超过65535个。

这个问题真是蛋疼啊。搞得批量插入的时候必须截断。

2、发现如果返回比较长的字符串时会被截断,最后只好又加了一个参数解决,最终的情况是这样:

this.statement = connection.prepareStatement(parsedQuery,ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);
this.statement.setFetchSize(10);


jdbc:mysql://x.x.x.x:3306/abc?rewriteBatchedStatements=true&useCursorFetch=true
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值