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

深圳直销制度网站制作网红营销

深圳直销制度网站制作,网红营销,河北拟建项目网,网络规划设计师需要的基础文章目录 场景官方插件源码解析项目细节小结 场景 在许多业务场景下,需要对tkMapper的功能进行增强,需要用到批量新增和批量更新(这里是唯一主键去更新的),许多论文博客自己写的看起来并不行,我们这里就采…

文章目录

    • 场景
    • 官方插件
    • 源码解析
    • 项目细节
    • 小结

场景

在许多业务场景下,需要对tkMapper的功能进行增强,需要用到批量新增和批量更新(这里是唯一主键去更新的),许多论文博客自己写的看起来并不行,我们这里就采用官方的模式,一次跑通

官方插件

这里是我通过中央仓库发现的一个宝库,平常对额外功能的增强需要自己常在中央仓库去逛逛看。

依赖地址:

<dependency><groupId>tk.mybatis</groupId><artifactId>mapper-spring-boot-starter</artifactId><version>4.2.3</version>
</dependency>
<dependency><groupId>tk.mybatis</groupId><artifactId>mapper-extra</artifactId><version>4.2.3</version>
</dependency>

starter是启动器,extra则是扩展插件,里面就有我们所需的功能

源码解析

我们来看看官方作者的实现方式到底是什么,看看这个具体的provider的实现原理,其实底层就是foreach

package tk.mybatis.mapper.additional.update.batch;import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.UpdateProvider;
import tk.mybatis.mapper.annotation.RegisterMapper;@RegisterMapper
public interface BatchUpdateMapper<T> {@UpdateProvider(type = BatchUpdateProvider.class,method = "dynamicSQL")void batchUpdate(@Param("list") List<? extends T> recordList);
}
package tk.mybatis.mapper.additional.update.batch;import org.apache.ibatis.mapping.MappedStatement;
import tk.mybatis.mapper.mapperhelper.MapperHelper;
import tk.mybatis.mapper.mapperhelper.MapperTemplate;
import tk.mybatis.mapper.mapperhelper.SqlHelper;public class BatchUpdateProvider extends MapperTemplate {public BatchUpdateProvider(Class<?> mapperClass, MapperHelper mapperHelper) {super(mapperClass, mapperHelper);}public String batchUpdate(MappedStatement ms) {Class<?> entityClass = this.getEntityClass(ms);StringBuilder sql = new StringBuilder();sql.append("<foreach collection=\"list\" item=\"record\" separator=\";\" >");sql.append(SqlHelper.updateTable(entityClass, this.tableName(entityClass)));sql.append(SqlHelper.updateSetColumns(entityClass, "record", false, false));sql.append(SqlHelper.wherePKColumns(entityClass, "record", true));sql.append("</foreach>");return sql.toString();}public String batchUpdateSelective(MappedStatement ms) {Class<?> entityClass = this.getEntityClass(ms);StringBuilder sql = new StringBuilder();sql.append("<foreach collection=\"list\" item=\"record\" separator=\";\" >");sql.append(SqlHelper.updateTable(entityClass, this.tableName(entityClass)));sql.append(SqlHelper.updateSetColumns(entityClass, "record", true, this.isNotEmpty()));sql.append(SqlHelper.wherePKColumns(entityClass, "record", true));sql.append("</foreach>");return sql.toString();}
}

项目细节

我们通常在自己的项目,都要所有的mapper都是继承我们自定义的BaseMapper,这里我也给上我常用的,后续要扩展功能,只要在BaseMapper上扩展即可

import tk.mybatis.mapper.additional.idlist.IdListMapper;
import tk.mybatis.mapper.additional.update.batch.BatchUpdateMapper;
import tk.mybatis.mapper.annotation.RegisterMapper;
import tk.mybatis.mapper.common.IdsMapper;
import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.special.InsertListMapper;/*** BaseMapper* TIP:basePackage的属性值 不能包含通用mapper所在的包,所以不能放在./mapper下,启动会报错** @param <T>*/
@RegisterMapper
public interface BaseMapper<T> extends Mapper<T>, IdListMapper<T, Long>, IdsMapper<T>, InsertListMapper<T>, BatchUpdateMapper<T> {}

小结

希望能够帮到你,总之我知道要实现的什么功能最好去看看作者的作品

http://www.15wanjia.com/news/47180.html

相关文章:

  • 手机自建网站成都网站建设方案优化
  • pc端网站做移动适配手机登录百度pc端入口
  • wordpress批量插入优化关键词首页排行榜
  • 哪些网站适合新手编程做项目湖南seo优化首选
  • 网站上的图文介绍怎么做网络营销的方法包括哪些
  • 武汉建网站公司网站流量指标有哪些
  • wordpress 当数据库外贸网站建设优化推广
  • 老域名做网站好吗下载百度搜索
  • 网站备案换主体黑帽seo教程
  • 保洁公司 网站模板搜索引擎排名的三大指标
  • 培训教育行业网站建设方案竞价推广平台
  • 线上运营平台有哪些唐山seo
  • 宝塔建设的网站火车头发布失败关键词生成器 在线
  • 漳州市建设局网站抖音怎么推广
  • 免费网站建设北京网站seo优化推广
  • 搜狐快站做淘宝客网站免费seo优化
  • 餐饮公司网站建设的特点网络营销成功案例ppt免费
  • 网站不备案可以做微信小程序么网络营销专业就业公司
  • ps网站首页怎么做百度账号怎么注册
  • 免费的行情网站app软件大全网站推广该怎么做
  • 杭州seo公司服务宁波厂家关键词优化
  • 南昌网站设计专业排名百度一下百度搜索百度一下
  • 网站页面构架优化什么意思
  • 有那个网站可以做免费的投票自己做网站需要什么条件
  • 怎么建网站锦州软文模板app
  • html5国外网站模板html源码下载手机seo关键词优化
  • 企业信息服务平台网站seo优化排名
  • 无锡网站怎么优化排名搜索引擎网站排名
  • 精通网站开发书籍百度seo优
  • 广西企业响应式网站建设公司免费企业网站建设