Hibernate使用jdbc批量插入
来源:互联网 发布:淘宝店铺封店还能解封 编辑:程序博客网 时间:2024/05/16 09:50
第一种方法:
使用PrepareStatement
//批量导入(jdbc操作)
public void impData(List<Map<String,String>> datalist,TbUser user) throwsSQLException, IOException{
//首先在dao层得到SessionFactory的实例
SessionFactory factory =getSessionFactory();
//通过sessionfactory得到ConnectionProvider
ConnectionProvider provider =((SessionFactoryImpl)factory).getConnectionProvider();
//得到连接对象connection
Connection connection = provider.getConnection();
connection.setAutoCommit(false); //设置为手动提交事务
PreparedStatement ps =connection.prepareStatement("insertinto emp(empName,depId) values(?,?)");
try {
//加入一次插入10000条数据
for (int i = 0; i< 10000; i++) {
ps.setString(1,’hwt’);
ps.setString(2,’123’);
ps.addBatch();
if(i%500==0){//可以设置不同的大小;如50,100,500,1000等等
ps.executeBatch();
connection.commit();
ps.clearBatch();
}
}
ps.executeBatch(); //批量执行
connection.commit();
}catch (Exception e) {
e.printStackTrace();
connection.rollback();
}finally{
ps.close();
connection.close();
}
}
方法二 使用Statement加批量的方法
- conn.setAutoCommit(false);
- Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
- for(int x = 0; x < size; x++){
- stmt.addBatch("INSERT INTO adlogs(ip,website,yyyymmdd,hour,object_id) VALUES('192.168.1.3', 'localhost','20081009',8,'23123')");
- }
- stmt.executeBatch();
- conn.commit();
conn.setAutoCommit(false);
Statement stmt =conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
for(int x = 0; x < size; x++){
stmt.addBatch("INSERT INTOadlogs(ip,website,yyyymmdd,hour,object_id) VALUES('192.168.1.3','localhost','20081009',8,'23123')");
}
stmt.executeBatch();
conn.commit();
方法三:直接使用Statement
- conn.setAutoCommit(false);
- Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
- ResultSet.CONCUR_READ_ONLY);
- for(int x = 0; x < size; x++){
- stmt.execute("INSERT INTO adlogs(ip,website,yyyymmdd,hour,object_id) VALUES('192.168.1.3', 'localhost','20081009',8,'23123')");
- }
- conn.commit();
conn.setAutoCommit(false);
Statement stmt =conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
for(int x = 0; x < size;x++){
stmt.execute("INSERT INTOadlogs(ip,website,yyyymmdd,hour,object_id) VALUES('192.168.1.3','localhost','20081009',8,'23123')");
}
conn.commit();
- hibernate使用jdbc批量插入
- Hibernate使用jdbc批量插入
- hibernate使用jdbc批量插入
- hibernate 使用jdbc批量插入数据
- Hibernate、JDBC之批量插入
- 利用hibernate jdbc 批量插入
- java中批量插入数据jdbc hibernate Mybatis使用方式
- 使用JDBC批量插入数据
- 批量插入 jdbc及hibernate方法
- Hibernate的批量插入(&&JDBC)
- spring hibernate 批量插入jdbc及hibernate方法
- spring hibernate 批量插入jdbc及hibernate方法
- JAVA使用JDBC批量插入SQL
- 使用JDBC中的PreparedStatement批量插入
- JDBC的批量批量插入
- JDBC的批量批量插入
- JDBC 批量插入记录
- jdbc 批量插入
- I,P,B帧和PTS,DTS的关系
- android – 多屏幕适配相关
- js登录弹出层 登录框特效
- 【Objective-C】02-Objective-C学习及iOS开发的准备
- poj2479-在一个数组中求任意不相交的两个子数组之和的最大值
- Hibernate使用jdbc批量插入
- 日志系统
- 快速排序
- 勇闯FreeBSD(二)
- java验证码代码
- 二维码写入到数据库
- 数据库访问技术 odbc dao rdo uda jet oledb
- 各种算法效率的比较
- Android异步任务详解 AsyncTask(通俗易懂,非常适合初学者)