欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Spring JdbcTemplate 批量插入或更新操作,springjdbctemplate, Spring Jdbc

来源: javaer 分享于  点击 14188 次 点评:200

Spring JdbcTemplate 批量插入或更新操作,springjdbctemplate, Spring Jdbc


 Spring JdbcTemplate 批量插入或更新操作用 JdbcTemplate 进行批量插入或更新操作方法一:代码只是测试用的一个小例子。public int insertContractAch(List list) throws DataAccessException {      final List temList = list;      String sql = "insert into contract_ach_t " +              " values(?,to_date(?,'yyyy-mm-dd'),?,?) ";      try{          int[] ii = this.getJdbcTemplate().batchUpdate(sql, new MyBatchPreparedStatementSetter(temList));          return ii.length;      }catch (org.springframework.dao.DataAccessException e) {          e.printStackTrace();          throw new DataAccessException(e.getMessage());      }  }  /*** 处理批量插入的回调类* */  private class MyBatchPreparedStatementSetter implements BatchPreparedStatementSetter{      final List temList;      /**通过构造函数把要插入的数据传递进来处理*/      public MyBatchPreparedStatementSetter(List list){          temList = list;      }      public int getBatchSize() {          return temList.size();      }      public void setValues(PreparedStatement ps, int i)              throws SQLException {          ContractAchVO contractAchVO = (ContractAchVO)temList.get(i);          ps.setString(1, contractAchVO.getContractCode());          ps.setString(2, contractAchVO.getCreateDate());          ps.setString(3, contractAchVO.getEmployeeId());          ps.setString(4, contractAchVO.getPercent());      }  } 方法二://插入很多书(批量插入用法)public void insertBooks(List<Book> book){  final List<Book> tempBook=book;  String sql="insert into book(name,pbYear) values(?,?)";  jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter()  {   public void setValues(PreparedStatement ps,int i)throws SQLException   {    String name=tempBook.get(i).getName();    int pbYear=tempBook.get(i).getPbYear();    ps.setString(1, name);    ps.setInt(2, pbYear);   }   public int getBatchSize()   {    return tempBook.size();   }  });} 
相关栏目:

用户点评