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

装修网站排行榜前十名有哪些教育推广

装修网站排行榜前十名有哪些,教育推广,网站建设公司 首推万维科技,那个网站做调查问卷能赚钱问题描述 环境#xff1a;mysql8.xmybatis3.5.13tk.mybatis4.2.3 在使用tk.mybatis做批量更新时#xff0c;程序会报错#xff0c;说是执行的SQL语法错误#xff0c;经研究源代码发现tk.mybatis在实现批量更新时是通过多次执行update语句实现的。这本身就不符合MySQL批量…问题描述 环境mysql8.xmybatis3.5.13tk.mybatis4.2.3 在使用tk.mybatis做批量更新时程序会报错说是执行的SQL语法错误经研究源代码发现tk.mybatis在实现批量更新时是通过多次执行update语句实现的。这本身就不符合MySQL批量更新的语法可以通过自定义Mapper的方式解决。 有关MySQL批量更新SQL语句的语法请参考MySQL专有的SQL语句 解决方案 批量更新 接口 RegisterMapper public interface BatchUpdateByIdMapperT {/*** 批量更新* param list* return*/UpdateProvider(type BatchUpdateByIdProvider.class, method dynamicSQL)int batchUpdate(ListT list); }provider public class BatchUpdateByIdProvider extends MapperTemplate {public BatchUpdateByIdProvider(Class? mapperClass, MapperHelper mapperHelper) {super(mapperClass, mapperHelper);}public String batchUpdate(MappedStatement statement) {//1.获取实体类对应的Class对象Class? entityClass super.getEntityClass(statement);//2.获取实体类在数据库中对应的表名String tableName super.tableName(entityClass);//3.生成update子句String update SqlHelper.updateTable(entityClass, tableName);//4.创建StringBuilder用于拼接SQL语句的各个组成部分StringBuilder sb new StringBuilder(update);sb.append(trim prefix\set\ suffixOverrides\,\);//5.获取所有字段信息SetEntityColumn columns EntityHelper.getColumns(entityClass);//获取主键EntityColumn pkEntityColumn null;for (EntityColumn entityColumn : columns) {boolean isPrimaryKey entityColumn.isId();if (isPrimaryKey) {pkEntityColumn entityColumn;break;}}for (EntityColumn entityColumn : columns) {boolean isPrimaryKey entityColumn.isId();//6.判断当前字段是否为主键if (!isPrimaryKey) {//7.使用非主键字段拼接SET子句String columnHolder entityColumn.getColumnHolder(item);sb.append(trim prefix\).append(entityColumn.getColumn()).append( case\ suffix\end, \);sb.append(foreach collection\list\ index\index\ item\item\);sb.append( when ).append(pkEntityColumn.getColumn()).append( ).append(pkEntityColumn.getColumnHolder(item)).append( then ).append(columnHolder);sb.append(/foreach);sb.append(/trim);}}sb.append(/trim);//10.使用前面缓存的主键名、主键值拼接where子句sb.append(where ).append(pkEntityColumn.getColumn()).append( in );sb.append(foreach close\)\ collection\list\ item\item\ open\(\ separator\, \);sb.append( #{item.).append(pkEntityColumn.getProperty()).append(});sb.append(/foreach);//11.将拼接好的字符串返回return sb.toString();}}选择性批量更新 Mapper接口 RegisterMapper public interface BatchUpdateSelectiveByIdMapperT {/*** 选择性批量更新* param list* return*/UpdateProvider(type BatchUpdateSelectiveByIdProvider.class, method dynamicSQL)int batchUpdateSelective(ListT list); }provider public class BatchUpdateSelectiveByIdProvider extends MapperTemplate {public BatchUpdateSelectiveByIdProvider(Class? mapperClass, MapperHelper mapperHelper) {super(mapperClass, mapperHelper);}/*** 批量更新* param statement* return*/public String batchUpdateSelective(MappedStatement statement) {//1.获取实体类对应的Class对象Class? entityClass super.getEntityClass(statement);//2.获取实体类在数据库中对应的表名String tableName super.tableName(entityClass);//3.生成update子句String update SqlHelper.updateTable(entityClass, tableName);//4.创建StringBuilder用于拼接SQL语句的各个组成部分StringBuilder sb new StringBuilder(update);sb.append(trim prefix\set\ suffixOverrides\,\);//5.获取所有字段信息SetEntityColumn columns EntityHelper.getColumns(entityClass);//获取主键EntityColumn pkEntityColumn null;for (EntityColumn entityColumn : columns) {boolean isPrimaryKey entityColumn.isId();if (isPrimaryKey) {pkEntityColumn entityColumn;break;}}for (EntityColumn entityColumn : columns) {boolean isPrimaryKey entityColumn.isId();//6.判断当前字段是否为主键if (!isPrimaryKey) {//7.使用非主键字段拼接SET子句String columnHolder entityColumn.getColumnHolder(item);sb.append(trim prefix\).append(entityColumn.getColumn()).append( case\ suffix\end, \);sb.append(foreach collection\list\ index\index\ item\item\);sb.append(if test\item.).append(entityColumn.getProperty()).append( ! null\ );sb.append( when ).append(pkEntityColumn.getColumn()).append( ).append(pkEntityColumn.getColumnHolder(item)).append( then ).append(columnHolder);sb.append( /if);sb.append(/foreach);sb.append(/trim);}}sb.append(/trim);//10.使用前面缓存的主键名、主键值拼接where子句sb.append(where ).append(pkEntityColumn.getColumn()).append( in );sb.append(foreach close\)\ collection\list\ item\item\ open\(\ separator\, \);sb.append( #{item.).append(pkEntityColumn.getProperty()).append(});sb.append(/foreach);//11.将拼接好的字符串返回return sb.toString();}}测试代码 Test void batchUpdate(){ListSubject list List.of(Subject.builder().id(13L).name(111).build(),Subject.builder().id(14L).name(222).build(),Subject.builder().id(15L).name(333).build(),Subject.builder().id(16L).name(444).build());subjectMapper.batchUpdateSelective(list); }
http://www.yutouwan.com/news/70501/

相关文章:

  • 壹佰网站建设宜昌 网站建设
  • 外贸网站建站案例广州站是哪个站
  • 兖州网站制作移动公司营销网站设计
  • 地图销售网站网站怎么做内链接地址
  • 深圳高水平网站制作企业网站cms 开源
  • 百度的网站建设代码优秀设计集锦网站
  • 网站常用的一种js的图片幻灯片特效代码wordpress版块插件
  • 泰国浪琴手表网站学做网站的书
  • 3万网站建设费会计分录公司主页格式
  • 国美在线网站建设北京果木烤鸭制作方法
  • PHP网站开发如何建立vip怎么样做一个网站
  • 有没有专门做尾料回收的网站正能量网站
  • 那家做网站好wap712c
  • 南京做网站费用网站中嵌入地图
  • 咸宁网站设计互联网公司排名 2022
  • 赣州市城乡建设局官方网站在线响应式网站
  • 青岛建设集团招聘信息网站WordPress说说主题
  • 如何自己创办一个网站wordpress型营销
  • 珠海网站建设费用湖南建设网
  • 大连工业大学图书馆百度人工优化
  • 网站建设验收单模板网站建设喀什
  • 宁波外贸网站设计山西省住房城乡建设厅网站首页
  • 北京好的网站设计机构东莞网站建设 熊掌号
  • 抖音做我女朋友的网站品牌网站建站目的
  • 十大购物网站排名网站建设全包一条龙
  • 签订网站制作协议需注意什么做药品的电商网站有哪些
  • 网站更换ip地址建湖人才网临时工招聘
  • 建设环保网站的目的与功能分析wordpress 后台美化
  • 建设厅试验员考试报名网站wordpress是动态
  • 张家界做网站找谁wordpress 舆情管理系统