前面提到,可以通过bulk insert 快速提高oracle写的速度.
但这个方法需要在数据库端添加procedure,不适合有些程序的开发.
以下介绍一个采用oracle jdbc batch写入的方法,提高写入的速度.
以下给出写入过程的示例,请大家参考.
测试结果:在30000条记录情况下,速度提高一倍.[@more@]
public void test_batch()
{
try
{
String insertSql = "insert into t_batch(name,name2,name3) values(?,?,?)";
PreparedStatement ps = oraCon.prepareStatement(insertSql);
for (int i = 1; i <= 30000; i++)
{
ps.setString(1, "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd" + i + "_str_" + i);
ps.setString(2, "sssssssssssssssssssssssssssssssssssssssssssssssssssssss" + i + "_str_" + i + "_mc");
ps.setString(3, "sssssssssssssssssssssssssssssssssssssssssssssssssssssss" + i + "_str_" + i + "_mc");
ps.addBatch();
if (0 == i % 500)
{
System.out.println("==>>i:" + i);
ps.executeBatch();
}
}
oraCon.commit();
}catch (Exception e) {
e.printStackTrace();
}
}