开发语言:JAVA ,JDBC
数据库:Oracle 9/10
问题描述:
在开发一个模块的时候,需要用到同时批量更新或者插入上万条数据,
由于批量更新和插入的SQL语句涉及到不同的表和不同的字段,就是SQL语句不确定,每条都可能是不同的,所以不能用PrepareStatement,而不得不用Statement的addBetch()
但是用statement的话,效率非常低,有什么方法可以解决statement的效率问题。
数据库:Oracle 9/10
问题描述:
在开发一个模块的时候,需要用到同时批量更新或者插入上万条数据,
由于批量更新和插入的SQL语句涉及到不同的表和不同的字段,就是SQL语句不确定,每条都可能是不同的,所以不能用PrepareStatement,而不得不用Statement的addBetch()
但是用statement的话,效率非常低,有什么方法可以解决statement的效率问题。
如果你的批量操作没有顺序要求,那么可以不使用循环而用PreparedStatement的addBatch.另一方面,你也可以开发存储过程,一次性传入一批数据,由它解析并用forall等方法完成批量操作。
也不会得到很好的性能。
所以首先还是从应用的角度,重新规划一下为好。
就是没明白你的“SQL语句不确定”啥意思?呵呵!你的表和字段都是定的,sql怎会不定?呵呵!
或者
update table set a = *** where b = * and c = * 而我这里是table和 a,b,c 都是变化的。