最近开发中使用了spring的NamedParameterJdbcTemplate的批量更行操作
方法如下
public void insert(Collection<Person> entities) { SqlParameterSource[] params = SqlParameterSourceUtils.createBatch(entities.toArray()); namedJdbcTemplate.batchUpdate(insertSql, params); }
我们业务的实际需要使用的是
public int batchUpdateBeans(String insertSql, List<? extends Object> beans) { int[] results = null; try { SqlParameterSource[] params = SqlParameterSourceUtils .createBatch(beans.toArray()); results = this.namedParameterJdbcTemplate.batchUpdate(insertSql, params); } catch (Exception e) { e.printStackTrace(); log.error(e.getMessage(), e); } return results.length; }
我们只需要传对应的sql 和封装的集合对象就可以实现批量更新了
如:
public int batchAddSupplyInfo(DUserInfo userInfo, List<DSupplyInfo> supplyList) { logger.info(System.currentTimeMillis() + "@" + userInfo.getAccount() + "#SupplyInfo.batchAddSupplyInfo"); StringBuffer sqlKey = new StringBuffer(); StringBuffer sqlValue = new StringBuffer(); sqlKey.append("insert into supply_info ( "); sqlValue.append(" values ( "); sqlKey.append("id, name, lang, industry, " + "logo, style, brands, products," + " telphone, contactMan, address, status," + "createBy, createTime, updateBy, updateTime )"); sqlValue.append("seq_supply_info.nextval, :name, :lang, :industry, " + ":logo, :style, :brands, :products," + " :telphone, :contactMan, :address, :status," + ":createBy, :createTime, :updateBy, :updateTime )"); sqlKey.append(sqlValue); return baseDao.batchUpdateBeans(sqlKey.toString(), supplyList); }
上述代码经过测试没问题。
另外我们可以用namedparameterJdbcTemplate的更新方法,传入sql和map集合即可
public int addBuyerRank(User user, DBuyer buyer) { StringBuffer sqlKey = new StringBuffer("INSERT INTO BUYER ("); StringBuffer sqlValue = new StringBuffer(" Values( "); Map<String, Object> paramMap = new HashMap<String, Object>(); sqlKey.append(" id, "); sqlKey.append(" buyerid, "); sqlKey.append(" rank, "); sqlKey.append(" createby, "); sqlKey.append(" updateby, "); sqlKey.append(" updatetime) "); sqlValue.append("seq_buyer_rank"); sqlValue.append(" :buyerid, "); sqlValue.append(" :rank, "); sqlValue.append(" :createby, "); sqlKey.append(" createtime, "); sqlValue.append(" :createtime, "); sqlValue.append(" :updateby, "); sqlValue.append(" :updatetime)"); paramMap.put("buyerid", buyerRank.getBuyerId()) ; paramMap.put("rank", buyerRank.getRank()); paramMap.put("createby", buyerRank.getCreateBy()); paramMap.put("createtime", buyerRank.getCreateTime()); paramMap.put("updateby", buyerRank.getUpdateBy()); paramMap.put("updatetime", buyerRank.getUpdateTime()); sqlKey.append(sqlValue); int update = 0; try { update = baseDao.getNamedParameterJdbcTemplate().update(sqlKey.toString(), paramMap); } catch (DataAccessException e) { } return update; }
相关推荐
我的使用Spring的NamedParameterJdbcTemplate完成DAO操作实例 博文链接:https://zmx.iteye.com/blog/373736
在数据管理系统中,添加大量数据,如果通过手动录入的话,相当费事费力。最近开发一款数据管理系统,所以我花了半天时间将该功能梳理出来。该资料将框架和其他功能都简化,主要实现该功能。
从Kafka中批量拉去数据,然后批量更新到es里。一次拉取的数量可以设置,现在是10000,轻松运转,更新到es内部也是,目标是百万日志秒处理
NULL 博文链接:https://shareisattitude.iteye.com/blog/2221135
ireport+jasper实现批量预览和打印,自己写的一个简单的实例
spring ioc指的是控制反转,IOC容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。交由Spring容器统一进行管理,从而实现松耦合
论坛系统项目(Struts 2+Hibernate+Spring实现)论坛系统项目(Struts 2+Hibernate+Spring实现)论坛系统项目(Struts 2+Hibernate+Spring实现)论坛系统项目(Struts 2+Hibernate+Spring实现)论坛系统项目(Struts...
struts2 hibernate spring 整合批量删除源码 struts2 hibernate spring 整合批量删除源码
基于Spring Boot和Spring Cloud实现微服务架构学习(一).pdf基于Spring Boot和Spring Cloud实现微服务架构学习(一).pdf基于Spring Boot和Spring Cloud实现微服务架构学习(一).pdf基于Spring Boot和Spring Cloud实现...
基于Spring Boot和Spring Cloud实现微服务架构学习(一).docx基于Spring Boot和Spring Cloud实现微服务架构学习(一).docx基于Spring Boot和Spring Cloud实现微服务架构学习(一).docx基于Spring Boot和Spring Cloud...
ORACLE 批量更新三种方式比较,主要介绍三种不同的方式去进行数据库批量更新
Spring IoC实现Spring IoC实现Spring IoC实现Spring IoC实现
NULL 博文链接:https://zhang-yingjie-qq-com.iteye.com/blog/319927
最近在研究springBoot+springbatch ,按照官网的实例做了一个实例。 最近在研究springBoot+springbatch ,按照官网的实例做了一个实例。
springboot+ spring security实现登录认证
NULL 博文链接:https://huibin.iteye.com/blog/618316
基于SpringCloud微服务实现的互联网招聘平台源码 基于SpringCloud微服务实现的互联网招聘平台源码 基于SpringCloud微服务实现的互联网招聘平台源码 基于SpringCloud微服务实现的互联网招聘平台源码 基于...
看见大多帖子都描述了关于Spring MVC模式下的文件批量上传代码,我在此整理后,分享给大家
主要介绍了Spring boot 实现单个或批量文件上传功能,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
用STS(Spring Tool Suite)开发的,spring mvc + spring security 实现的最简单的登录系统,无数据库。