spring hibernate 批量插入jdbc及hibernate方法

来源:互联网 发布:mac photoshop cc 2016 编辑:程序博客网 时间:2024/05/29 09:44

项目中需要用到批量添加,考虑到新能问题用jdbc实现. 
记录下来,以后会用. 

[javascript] view plain copy
  1. public void createRolePermissionBySql(final String roleId,final String[] permIds){  
  2.           
  3.         getHibernateTemplate().execute(new HibernateCallback() {  
  4.             public Object doInHibernate(Session session)  
  5.                     throws HibernateException, SQLException {  
  6.                 if(permIds==null||permIds.length==0)  
  7.                           return null;  
  8.                 Connection conn=session.connection();  
  9.                 PreparedStatement ps=null;  
  10.                 String sql=" insert into base_role_permission (ROLE_PERM_ID,PERM_ID,ROLE_ID,CREATE_DATE)" +  
  11.                            " values (?,?,?,?) ";  
  12.                 ps=conn.prepareStatement(sql);  
  13.                 if(log.isDebugEnabled())  
  14.                        log.debug("batch add base_role_permission:"+sql);  
  15.                 UUIDHexGenerator uuidGenerator=null;  
  16.                 for(String permId:permIds){  
  17.                     uuidGenerator=new UUIDHexGenerator();  
  18.                     ps.setString(1,uuidGenerator.generate(nullnull).toString());  
  19.                     ps.setString(2,permId);  
  20.                     ps.setString(3, roleId);  
  21.                     ps.setDate(4, DateUtils.getJavaSqlDate());  
  22.                     ps.addBatch();  
  23.                 }  
  24.                 int[] counts=ps.executeBatch();  
  25.                 ps.close();  
  26.                 session.flush();  
  27.                 session.close();  
  28.                 return null;  
  29.             }  
  30.         });  
  31.     }  
  32.      

hibernate批量插入 

[java] view plain copy
  1. public void batchSaveCardDetail(List<TCardInfo> cardDetails) {  
  2.         return this.getHibernateTemplate().execute(new HibernateCallback() {  
  3.             @Override  
  4.             public Object doInHibernate(Session session) throws HibernateException, SQLException {                  
  5.         for (int i = 0; i < cardDetails.size(); i++) {  
  6.                     session.save(cardDetails.get(i));         
  7.                     if (i % 50 == 0) {  
  8.                         session.flush();  
  9.                         session.clear();  
  10.                     }  
  11.                 }                  
  12.                 return null;  
  13.             }  
  14.         });  
  15. }  

转自:http://blog.csdn.net/a9529lty/article/details/6256135

0 0
原创粉丝点击