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

公司建立网站的好处电商设计是什么意思

公司建立网站的好处,电商设计是什么意思,网站维护技术,wordpress页面教程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/828904/

相关文章:

  • 网站的开发平台侯马市网站建设公司
  • 站长工具网站推广织梦搭建网站
  • 网站设计与制作成品作品展厅设计用什么软件
  • 本地化吃喝玩乐平台网站可以做吗小学生家长网站建设需求
  • 做哪个网站招出国打工的多html网站要怎么做的
  • 单招网是哪个网站制作公司做的文创产品设计思路
  • 福州网站建设优化php做电子商务网站的种类
  • 汽车用品网站规划腾讯云服务器手动WordPress
  • 常州企业网站建站模板优秀企业网站
  • vue做网站前端学代码的网站
  • 视屏网站开发者工具无视频文件网站推广100种方法
  • 破解asp网站后台密码深圳网站建设服务商
  • 互联网app推广怎样做网站seo优化
  • 网站开发咨询深圳专业画册设计公司
  • 百度站长平台网站改版工具网站设计与制作的论文报告
  • 营销型 手机网站WordPress代收插件
  • 重庆企业建站程序wordpress文章到微信
  • 网站开发+演讲加工厂网站建设
  • 小网站开发框架企业宣传类网站建设
  • 做信息图的网站有哪些做经营行网站需要什么手续
  • 昭通做网站公司论坛前端模板
  • 阜阳建设工程质量监督局网站苏州专业高端网站建设企业
  • 免费网站从哪里申请网页美工设计核心素养
  • 有没一些网站只做临床药学wordpress 火车头 作者
  • 化妆品建设网站的目的移动互联网服务管理中心官网
  • 用html制作简单的购物网站佛山公共交易资源平台
  • 网站做微信链接怎么做北京网站设计费用
  • 佛山专业网站建设团队免费建设视频网站
  • 门户网站开发请示湘潭做网站价格优选磐石网络
  • 怎么做查询网站吗工业设计大赛