2023年6月21日发(作者:)
Springnamedparameterjdbctemplate实现批量更新最近开发中使⽤了spring的NamedParameterJdbcTemplate的批量更⾏操作⽅法如下
public void insert(Collection entities) { SqlParameterSource[] params = Batch(y()); pdate(insertSql, params);} 我们业务的实际需要使⽤的是public int batchUpdateBeans(String insertSql, List extends Object> beans) { int[] results = null; try { SqlParameterSource[] params = SqlParameterSourceUtils .createBatch(y()); results = pdate(insertSql, params); } catch (Exception e) { tackTrace(); (sage(), e); } return ; } 我们只需要传对应的sql 和封装的集合对象就可以实现批量更新了如:public int batchAddSupplyInfo(DUserInfo userInfo, List supplyList) { (tTimeMillis() + "@" + ount() + "#ddSupplyInfo"); StringBuffer sqlKey = new StringBuffer(); StringBuffer sqlValue = new StringBuffer(); ("insert into supply_info ( "); (" values ( "); ("id, name, lang, industry, " + "logo, style, brands, products," + " telphone, contactMan, address, status," + "createBy, createTime, updateBy, updateTime )"); ("seq_supply_l, :name, :lang, :industry, " + ":logo, :style, :brands, :products," + " :telphone, :contactMan, :address, :status," + ":createBy, :createTime, :updateBy, :updateTime )"); (sqlValue);
return pdateBeans(ng(), supplyList);
} 上述代码经过测试没问题。
另外我们可以⽤namedparameterJdbcTemplate的更新⽅法,传⼊sql和map集合即可 public int addBuyerRank(User user, DBuyer buyer) { StringBuffer sqlKey = new StringBuffer("INSERT INTO BUYER ("); StringBuffer sqlValue = new StringBuffer(" Values( "); Map paramMap = new HashMap(); (" id, "); (" buyerid, "); (" rank, "); (" createby, "); (" updateby, "); (" updatetime) ");
("seq_buyer_rank"); (" :buyerid, "); (" :rank, "); (" :createby, "); (" createtime, "); (" :createtime, "); (" :updateby, "); (" :updatetime)");
("buyerid", erId()) ; ("rank", k()); ("createby", ateBy()); ("createtime", ateTime()); ("updateby", ateBy()); ("updatetime", ateTime());
(sqlValue); int update = 0; try { update = edParameterJdbcTemplate().update(ng(), paramMap); } catch (DataAccessException e) {
}
return update; }
2023年6月21日发(作者:)
Springnamedparameterjdbctemplate实现批量更新最近开发中使⽤了spring的NamedParameterJdbcTemplate的批量更⾏操作⽅法如下
public void insert(Collection entities) { SqlParameterSource[] params = Batch(y()); pdate(insertSql, params);} 我们业务的实际需要使⽤的是public int batchUpdateBeans(String insertSql, List extends Object> beans) { int[] results = null; try { SqlParameterSource[] params = SqlParameterSourceUtils .createBatch(y()); results = pdate(insertSql, params); } catch (Exception e) { tackTrace(); (sage(), e); } return ; } 我们只需要传对应的sql 和封装的集合对象就可以实现批量更新了如:public int batchAddSupplyInfo(DUserInfo userInfo, List supplyList) { (tTimeMillis() + "@" + ount() + "#ddSupplyInfo"); StringBuffer sqlKey = new StringBuffer(); StringBuffer sqlValue = new StringBuffer(); ("insert into supply_info ( "); (" values ( "); ("id, name, lang, industry, " + "logo, style, brands, products," + " telphone, contactMan, address, status," + "createBy, createTime, updateBy, updateTime )"); ("seq_supply_l, :name, :lang, :industry, " + ":logo, :style, :brands, :products," + " :telphone, :contactMan, :address, :status," + ":createBy, :createTime, :updateBy, :updateTime )"); (sqlValue);
return pdateBeans(ng(), supplyList);
} 上述代码经过测试没问题。
另外我们可以⽤namedparameterJdbcTemplate的更新⽅法,传⼊sql和map集合即可 public int addBuyerRank(User user, DBuyer buyer) { StringBuffer sqlKey = new StringBuffer("INSERT INTO BUYER ("); StringBuffer sqlValue = new StringBuffer(" Values( "); Map paramMap = new HashMap(); (" id, "); (" buyerid, "); (" rank, "); (" createby, "); (" updateby, "); (" updatetime) ");
("seq_buyer_rank"); (" :buyerid, "); (" :rank, "); (" :createby, "); (" createtime, "); (" :createtime, "); (" :updateby, "); (" :updatetime)");
("buyerid", erId()) ; ("rank", k()); ("createby", ateBy()); ("createtime", ateTime()); ("updateby", ateBy()); ("updatetime", ateTime());
(sqlValue); int update = 0; try { update = edParameterJdbcTemplate().update(ng(), paramMap); } catch (DataAccessException e) {
}
return update; }
发布评论