String sql = "insert into "
+ T_PROD
+ month
+ "(id,SERV_ID,ACC_NBR,PROD_ID,IS_PHS_TK,CREATE_DATE,CUST_ID,STATE,CITY)"
+ " values(seq_rep_ogn_prod_id.nextval,?,?,?,?,?,?,?,?)";
try {
in = new BufferedReader(new FileReader(d.getPath() + filename));
conn.setAutoCommit(false);
pstm = conn.prepareStatement(sql); String linedata = in.readLine();
int i = 1;
Long SERV_ID = null;
String ACC_NBR = "";
Long PROD_ID = null;
String IS_PHS_TK = "";
java.util.Date date = null;
Timestamp CREATE_DATE = null;
Long CUST_ID = null;
String STATE = "";
String CITY = "";
while (linedata != null) {
String[] data = linedata.split("\\;");
if (data.length != 7) {
log("read 第 " + i + "行" + linedata);
//log("长度不够或超出了。");
} else {
try {
if (data[0].trim().length() != 0) {
SERV_ID = Long.parseLong(data[0].trim());
} else {
SERV_ID = null;
}
// SERV_ID = Long.parseLong(data[0].trim());
ACC_NBR = data[1].trim();
if (data[2].trim().length() != 0) {
PROD_ID = Long.parseLong(data[2].trim());
} else {
PROD_ID = null;
}
// PROD_ID = Long.parseLong(data[2].trim());
IS_PHS_TK = data[3].trim();
if (data[4].trim().length() <= 8) {
date = sim2.parse(data[4].trim());
} else {
date = sim.parse(data[4].trim());
}
// date = sim.parse(data[4].trim());
// 存入oracle时间要完整的时间类型得用到Timestamp
CREATE_DATE = new Timestamp(date.getTime());
if (data[5].trim().length() != 0) {
CUST_ID = Long.parseLong(data[5].trim());
} else {
CUST_ID = null;
}
// CUST_ID = Long.parseLong(data[5].trim());
STATE = data[6].trim();
CITY = city.trim();
if (SERV_ID == null) {
pstm.setNull(1, java.sql.Types.BIGINT);
} else {
pstm.setLong(1, SERV_ID);
}
// pstm.setLong(1, SERV_ID);
pstm.setString(2, ACC_NBR);
if (PROD_ID == null) {
pstm.setNull(3, java.sql.Types.BIGINT);
} else {
pstm.setLong(3, PROD_ID); }
// pstm.setLong(3, PROD_ID);
pstm.setString(4, IS_PHS_TK);
pstm.setTimestamp(5, CREATE_DATE);
if (CUST_ID == null) {
pstm.setNull(6, java.sql.Types.BIGINT);
} else {
pstm.setLong(6, CUST_ID);
}
// pstm.setLong(6, CUST_ID);
pstm.setString(7, STATE);
pstm.setString(8, CITY);
pstm.addBatch();
if (i % commitCount == 0 && i != 0) {
// 利用executeBatch方法执行1000条SQL语句
pstm.executeBatch();
pstm.clearBatch();
conn.commit(); }
} catch (Exception e) {
e.printStackTrace();
log("read 第 " + i + "行 " + linedata);
}
}
i++;
linedata = in.readLine();
}
pstm.executeBatch();
pstm.clearBatch();
conn.commit();
// close(); //关闭资源 in.close();
} catch (Exception e1) {
log(e1.getMessage());
}
上面的代码中最主要的就是几句而已,用来下面的这几句,可以提高上百倍的数据操作插入的效率,
先取消自动commit()这个方法,用下面这句:
conn.setAutoCommit(false);
预编译一下sql语句:
pstm = conn.prepareStatement(sql);
根据sql中的位置来设置相应的参数:
pstm.setLong(3, PROD_ID);
设置完一条就加到bath里面去
pstm.addBatch();
每一千条就提交一次,不然内容会受不了的,1000这个大小可以根据实际内存来设置,
下面这两个方法是在commit()前一定要操作的,因为这样才可以释放掉内存。
pstm.executeBatch();
pstm.clearBatch();
if (i % commitCount == 0 && i != 0) {
// 利用executeBatch方法执行1000条SQL语句
pstm.executeBatch();
pstm.clearBatch();
conn.commit();
pstm.executeBatch();
pstm.clearBatch();
conn.commit();
// close(); //关闭资源
最后一定要关闭数据库连接,不然这个连接会耗费很多资源的。
分享到:
相关推荐
JAVA代码实现MySQL数据库的连接,和数据库的查询以及结果处理
SqlServer中使用到的jar文件jdbc.jar和jabc4.0.jar
jdbc如何连接数据库,连接池代码,里面是源码和讲解,初学者的最好资料,老师讲解后自己整理的,简单也懂。
java与数据库的连接jdbc数据库操作实例 1 连接数据库 创建表 students ID\Name\Major\Telephone 程序中实现执行Sql语句对数据增、删、改、查 2 写一个连接Oracle数据库在T_User表中根据用户名把其中的密码更新成...
jdbc最简的单代码片段,最简单的增删改查功能
包含jdbc6和jdbc7 用于和oracle数据库10g 11g及以上的数据库连接,apache官网下载oracle.jdbc.driver.oracledriver是其中的类
spring-framework经典版本,里面有各种依赖的jar包,很全
操作jabc的金典总结 总体看待jdbc
JDBC连接8种数据库的写法
JDBC批量插入 有关详细信息,请参阅建造 mvn package 创建表 gpadmin=# create table jdbc_load (a text, b text, c text, d text, e text ); CREATE TABLE 在 /tmp/test.txt 中创建一个 TAB 分隔的文件 ...
本系统实现了考试方案管理,考试计划管理,成绩管理,学生管理等等,应用了java+struts 2+jabc架构,mvc框架
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
jabc驱动,MS sql 2000 JDBC msbase.jar mssqlserver.jar msutil.jar
Tomcat JDBC池软件包 org.apache.tomcat/tomcat-jdbc/8.0.47/tomcat-jdbc-8.0.47.jar
该uml时序图是接上一博文jabc的连接封装,描述了里面的增删查改等时序
jabc课件,让我们简单的理解什么是jdbc和一些库函数。让你有大体了解和认识。
数据库驱动。5.1版本和8.0版本
MySQL的jdbc架包,用于Myeclipse开发Web程序
关于jdbc的详细资料,资料简明易懂,有助于初学者去学习。
可以借助,不可以抄袭,希望学习有帮助。