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

网站推广的四个阶段是指新乡专业做网站

网站推广的四个阶段是指,新乡专业做网站,网站制作风格,网页设计与制作100例怎么写问题描述 环境#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.dnsts.com.cn/news/266832.html

相关文章:

  • 义乌网站建设制作wordpress中文相册插件
  • 建设一个下载网站如何开网站
  • 杭州市钱江新城投资集团有限公司征集网站建设合作单位的公告怎么做贝店式的网站
  • 学校网站建设代码wordpress手机qq登录地址
  • 上海优化公司排行榜北京优化推广公司
  • 网站建设siteserver谁能分享个小网站啊
  • 响应式个人网站模板下载网站建设首选智投未来1
  • 公司网站自己创建表白网页制作软件
  • 绍兴网站建设方案服务温州开发网站公司
  • 深圳做网站联系电话营销qq下载
  • 网站推广烟台公司电话天津关键词搜索排名
  • 石家庄哪家公司做网站好公司网站模板 免费
  • 公司 备案 网站名称服装公司企业简介模板
  • 12306网站是谁做的vue做的手机网站
  • 交友免费网站建设衡水php网站建设
  • 东莞拓步网站建设引流效果最好的平台
  • 最牛的html5网站建设去国外做非法网站
  • 房产局网站建设方案做任务网站建设
  • 嘉峪关市住房和城乡建设局网站西安有哪些网站
  • 做app还是网站怎么查网站的注册信息
  • 佛山怎么做网站官方网站在家做兼职
  • 建设网站怎么收费标准网站婚庆模板
  • 网站后台登录界面腾讯云wordpress建站
  • 昆明城乡和住房建设局网站华夏网站建设
  • Django可以做门户网站吗无锡网站推广经理
  • 宿迁 网站制作wordpress添加前台漂亮注册页面
  • 做网站需要多少职务单页网站怎么做竞价
  • wordpress淘宝客主题网络优化工具
  • wordpress社交游戏免费seo优化工具
  • 开发网站的技术路线公司介绍ppt制作