8a批量insert的JDBC样例
由于GBase8a是列式存储,表锁,对于一条一条的insert处理非常慢,因此需要攒批处理,攒批insert的JDBC样例如下:
package testsuite.simple.myCase.batchinsert;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class InsertTest {
public static void main(String[] args) {
//批量插入开启rewriteBatchedStatements=true参数可以重写insert语句,提高性能
String url="jdbc:gbase://192.168.5.85:5258/bht?user=gbase&password=gbase20110531&rewriteBatchedStatements=true";
try {
Class.forName("com.gbase.jdbc.Driver");
Connection conn = DriverManager.getConnection(url);
String sql="insert into fulltype (aint,bfloat,cdouble) values(?,?,?)";
PreparedStatement pst = conn.prepareStatement(sql);
for(int i=0;i<100;i++){
pst.setInt(1, i);
pst.setFloat(2, i);
pst.setDouble(3,i);
pst.addBatch();
if(i%50==0){
//根据实际使用,修改多少条一提交
pst.executeBatch();
pst.clearBatch();
}
}
pst.executeBatch();
} catch (Exception e) {
e.printStackTrace();
}
}
}
评论
热门帖子
- 12025-12-01浏览数:182762
- 22023-05-09浏览数:25056
- 42023-09-25浏览数:18525
- 52020-05-11浏览数:17528