当前位置: 首页 > news >正文

登陆中国建设银行网站我的账户密码怎么就有了?怎么清除有没有网址呀

登陆中国建设银行网站我的账户密码怎么就有了?怎么清除,有没有网址呀,深圳建设集团有限公司有分公司吗,销售和营销的区别mybatis-plus 提供了根据id批量更新和修改的方法,这个大家都不陌生 但是当表没有id的时候怎么办 方案一: 手写SQL方案二: 手动获取SqlSessionTemplate 就是把mybatis plus 干的事自己干了方案三 : 重写 executeBatch 方法结论: mybatis-plus 提供了根据id批量更新和修改的方法,…

mybatis-plus 提供了根据id批量更新和修改的方法,这个大家都不陌生 但是当表没有id的时候怎么办

  • 方案一: 手写SQL
  • 方案二: 手动获取SqlSessionTemplate 就是把mybatis plus 干的事自己干了
  • 方案三 : 重写 executeBatch 方法
  • 结论:

mybatis-plus 提供了根据id批量更新和修改的方法,这个大家都不陌生 但是当表没有id的时候怎么办)

方案一: 手写SQL

  • 这个就不说了,就是因为不想手写SQL 所以才有这篇博客

方案二: 手动获取SqlSessionTemplate 就是把mybatis plus 干的事自己干了

// 这种方法就是把mybatis的活在干一遍,还是一条一条处理的.只是共用一个session连接
@Autowired
private SqlSessionTemplate sqlSessionTemplate;// 新获取一个模式为BATCH,自动提交为false的session
SqlSession session = sqlSessionTemplate.getSqlSessionFactory().openSession(ExecutorType.BATCH,false);
static final BATCH_SIZE = 1000;
// XxxMapper 为 对应的mapper文件
XxxMapper xxMapper = session.getMapper(XxxMapper.class);
int size = updateList.size();
try {for(int i=0; i < size; i++) {// updateByXxx 写好的单条数据的方法xxMapper.updateByXxx(updateList.get(i));if(i % BATCH_SIZE == 0 || i == size-1){//手动每1000个一提交,提交后无法回滚session.commit();//清理缓存,防止溢出session.clearCache();}}
}catch (Exception e) {session.rollback();
} finally {session.close();
}

方案三 : 重写 executeBatch 方法

	// mybatis plus 源码@Transactional(rollbackFor = Exception.class)@Overridepublic boolean updateBatchById(Collection<T> entityList, int batchSize) {String sqlStatement = getSqlStatement(SqlMethod.UPDATE_BY_ID);return executeBatch(entityList, batchSize, (sqlSession, entity) -> {MapperMethod.ParamMap<T> param = new MapperMethod.ParamMap<>();param.put(Constants.ENTITY, entity);sqlSession.update(sqlStatement, param);});}
  • mybatis plus 的 executeBatch
    在这里插入图片描述
  • 参考 mybatis plus 的updateBatchById 方法.
  • 调用处:
//删除方法 deleteList  是要删除的主键list
List<String> deleteList = new ArrayList<>();
dao.batchDelete(deleteList, delete -> new QueryWrapper<String>().eq("xx", delete));// 修改方法 OBJ 代码表对象
List<OBJ> updateList = new ArrayList<>();
dao.batchUpdate(updateList, update -> new LambdaQueryWrapper<OBJ>().eq(OBJ::getProductId, update.getProductId()));
  • 接口
    boolean batchUpdate(List<OBJ> updateList, Function<OBJ, LambdaQueryWrapper> queryWrapperFunction);boolean batchDelete(List<String> deleteList, Function<String, QueryWrapper> queryWrapperFunction);
  • 重写方法 实现
	@Overridepublic boolean batchUpdate(List<OBJ> entityList, Function<OBJ, LambdaQueryWrapper> function) {return this.executeBatch(entityList, DEFAULT_BATCH_SIZE, (sqlSession, entity) -> {ParamMap param = new ParamMap();param.put(Constants.ENTITY, entity);param.put(Constants.WRAPPER, function.apply(entity));sqlSession.update(this.getSqlStatement(SqlMethod.UPDATE), param);});}@Overridepublic boolean batchDelete(List<String> deleteList, Function<String, QueryWrapper> function) {return this.executeBatch(deleteList, DEFAULT_BATCH_SIZE, (sqlSession, entity) -> {ParamMap param = new ParamMap();param.put(Constants.ENTITY, entity);param.put(Constants.WRAPPER, function.apply(entity));sqlSession.delete(this.getSqlStatement(SqlMethod.DELETE), param);});}

结论:

  • 这种写法其实批量的效率还是比较慢的,如果对性能没有要求,并且还不想手写SQL的,可以试一试.
http://www.yayakq.cn/news/78873/

相关文章:

  • 网站建设方案交换认苏州久远网络专业网站建设基本流程
  • 网站建设全程揭秘光盘文件建设银行人力资源网站
  • 网站转化率排名平板怎么做网页
  • 网站建设邯郸怎么开发手机app
  • 泰安集团网站建设费用手机网站用什么软件做
  • 天津公司建站wordpress 删除略缩图
  • 婚礼工作室网站模板企业网页设计报价
  • 阜阳哪里做网站的多微信朋友圈怎么投放广告
  • 网站建设招聘兼职wordpress前台文章
  • 网站建设背景图片怎样用网站做淘宝客
  • 珠海网络公司网站建设138企业邮箱登录
  • 做网站接活全流程网页设计师收费标准
  • 网站流量数据分析wordpress data src
  • 东莞企业网站制作出售重庆建站服务商
  • 检察院门户网站建设方案网站设计网页版
  • 青岛模板做网站漳州城乡和建设局网站首页
  • h5网站开发哪个好经典重庆论坛上不了了
  • 石家庄百度推广家庄网站建设北京网站开发网站建设报价
  • wordpress连续照片 主题沈阳网站关键词优化做的好吗
  • 用wp做网站备案网络营销策略包括哪些方面
  • 百度推广网站建设费做网站商城需要什么
  • 外网服装设计网站网络网站建设的意义
  • 文化馆门户网站建设的作用及意义做不了大流量网站
  • 长春本地网站制作wordpress配合七牛云
  • 六安网站线上引流多少钱网络规划设计师教程第2版2021版pdf下载
  • 做网站备案要多久建一个网站需要多少钱?
  • 网站宣传推广策划宁波建设网站
  • 国内设计精美的网站写一个app需要多少钱
  • php做网站需要注意什么网络营销的特点及方式有哪些
  • 网站怎么做链接怎么用vs2017做网站