java批量向oracle插⼊数据
  由于项⽬需要,需要将⼀个6M的txt中的数据插⼊到oracle数据表中。txt中的数据是每⾏⼀个词。经过统计,词总数是505040。为了看起来⽅便,我将我的所有⽅法写在类⼊⼝中,数据库的信息我会⽤test代替,代码如下。
public static void main(String[] args) throws IOException, Exception {
// TODO Auto-generated method stub
Connection conn = null;
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = Connection("jdbc:oracle:thin:@localhost:test",
"test", "test");
conn.setAutoCommit(false);
PreparedStatement pst = conn
.prepareStatement("insert into yq_seq_word values(seq_yq_val,?)");
InputStreamReader isr = new InputStreamReader(new FileInputStream(
new File("C:/Users/Press-Lab/")), "utf-8");
BufferedReader read = new BufferedReader(isr);
String s = null;
int i = 1;
long start = System.currentTimeMillis();
while ((s = adLine()) != null) {
// 当数据满100条批量插⼊
if (i % 100 == 0) {
// 语句执⾏完毕,提交本事务
// 此处的事务回滚是必须的,⽹上很多代码没有处理,会导致插⼊数据不完整。
try {
connmit();
} catch (Exception e) {
}
} else {
pst.setString(1, s);
pst.addBatch();
}
jdbc连接oracle
i++;
}
// 由于每次达到100条插⼊,如果数据不为100的倍数的话,最后⼀次会剩下⼀些。下⾯的代码正好处理剩下的数据
// 语句执⾏完毕,提交本事务
try {
connmit();
} catch (Exception e) {
}
long end = System.currentTimeMillis();
// 此处是打印插⼊效果
System.out.println("插⼊" + i + "条,耗时" + (end - start));
read.close();
}
    以下是效果的打印。
      插⼊505040条,耗时22796