怎么实现,java读1G以上的txt文件并快速入库? txt文件每行数据需要入库,有1千多万条数据,其中每行字段用的是逗号隔开我的代码是:读一条入一条 这样太慢了,请问有什么好的方法实现,麻烦付上代码,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用mysql数据库的load data infile语句应该很快 可以读好几条然后一次写入数据库的,如果你有导出oracle数据习惯的话,会发现oracle导出的sql会100条sql语句使用一个commit的,显然比一条sql语句插入一次效率要高。以下代码可以借鉴下:Connection con = null; Statement stm = null; try { con = JDBCConAndClo.getConnectionBao(); stm = con.createStatement(); con.setAutoCommit(false); // 若不出现异常,则继续执行到try语句完,否则跳转到catch语句中 stm.addBatch("insert into student values(23,'tangbao','高数',100)"); stm.addBatch("insert into student values(24,'王定','c#',98)"); stm.addBatch("insert into student values(25,'王国云','java',90)"); stm.addBatch("insert into student values(26,'溜出','英语',89)"); stm.addBatch("insert into student values(27,'wqde','java',63)"); /* * int[] executeBatch() throws * SQLException将一批命令提交给数据库来执行,如果全部命令执行成功,则返回更新计数组成的数组。 */ stm.executeBatch(); System.out.println("插入成功!"); // commit:若成功执行完所有的插入操作,则正常结束 con.commit(); System.out.println("提交成功!"); con.setAutoCommit(true); } catch (SQLException e) { e.printStackTrace(); try {//rollback: 若出现异常,对数据库中所有已完成的操作全部撤销,则回滚到事务开始状态 if (!con.isClosed()) { con.rollback(); System.out.println("提交失败,回滚!"); con.setAutoCommit(true); } } catch (SQLException e1) { e1.printStackTrace(); } finally { JDBCConAndClo.closeStatement(stm); JDBCConAndClo.closeConnection(con); } } java.lang包 能用数组当对象么?JTextField x[i] =new JTextField 哪位帮我写一段线程代码,第一次接触java线程,一直搞不定,在线等 如何用JDBC直连数据库? eclipse怎样创建applet 谁用过jdic 来开发浏览器的啊 我为什么可以改变final数据 ▲▲▲发现java在文件处理方面有缺陷!▲▲▲▲ 一个想法~~~可不可以做查询具体表的bean,不需传参数的。 请问如何让IE显示带Applet的html? 设计一个百亿计算器的思路? 贪吃蛇
以下代码可以借鉴下:Connection con = null;
Statement stm = null;
try {
con = JDBCConAndClo.getConnectionBao();
stm = con.createStatement();
con.setAutoCommit(false);
// 若不出现异常,则继续执行到try语句完,否则跳转到catch语句中
stm.addBatch("insert into student values(23,'tangbao','高数',100)");
stm.addBatch("insert into student values(24,'王定','c#',98)");
stm.addBatch("insert into student values(25,'王国云','java',90)");
stm.addBatch("insert into student values(26,'溜出','英语',89)");
stm.addBatch("insert into student values(27,'wqde','java',63)");
/*
* int[] executeBatch() throws
* SQLException将一批命令提交给数据库来执行,如果全部命令执行成功,则返回更新计数组成的数组。
*/
stm.executeBatch();
System.out.println("插入成功!");
// commit:若成功执行完所有的插入操作,则正常结束
con.commit();
System.out.println("提交成功!");
con.setAutoCommit(true); } catch (SQLException e) {
e.printStackTrace();
try {
//rollback: 若出现异常,对数据库中所有已完成的操作全部撤销,则回滚到事务开始状态
if (!con.isClosed()) {
con.rollback();
System.out.println("提交失败,回滚!");
con.setAutoCommit(true);
}
} catch (SQLException e1) {
e1.printStackTrace();
} finally {
JDBCConAndClo.closeStatement(stm);
JDBCConAndClo.closeConnection(con);
}
}