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

班级网站建设方案书商标设计图案免费

班级网站建设方案书,商标设计图案免费,wordpress 详解,专业制作网站哪家专业文章目录 场景官方插件源码解析项目细节小结 场景 在许多业务场景下,需要对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.yayakq.cn/news/421525/

相关文章:

  • 淮南电商网站建设外国游戏概念设计网站
  • 福州网站提升排名安徽建站网站
  • 网站统计开放平台中国人做外贸网站都卖什么手续
  • 深圳做网站的网wordpress知更鸟菜单修改
  • 做网站主要栏目内怎么成立个人网站
  • 中山高端网站建设价格淘宝建设网站的理由
  • 常州网站制作系统网站的ftp帐号
  • 有哪些外贸公司网站做的比较好新乡网站建设制作
  • 网站SEO优化实训dede手机网站模板修改
  • 做企业网站联系wordpress建站案例视频
  • 网上做问卷报酬不错的网站是个人网站制作手绘
  • 在线制作图片的网站网店如何推广自己的产品
  • 购物网站的图片轮播怎么做简单的网页设计作品下载
  • 凤岗仿做网站杭州最专业的seo公司
  • 常见的电子商务网站网址北京附近做网站的公司
  • 东南亚网站建设市场wordpress html 代码
  • 肇庆网站制作设计wordpress修改404
  • 制作网站常用软件中国是唯一一个拥有空间站
  • 做网站 使用权 所有权济南槐荫网站开发公司
  • 怎么让别人访问自己做的网站重庆知道推广网站方法
  • 做违法网站会怎么样wordpress 上传阿里云
  • 如何找有需求做网站的公司自媒体营销
  • 网站开发项目经验总结教训天津市网站制作建设推广公司
  • 开公司如何做网站推广页面门户网站建设与管理办法
  • 网站次年续费石家庄市城乡和建设局网站
  • html怎么做网站后台考二建需要什么学历和专业
  • 买做指甲的材料在哪个网站紫川网站建设
  • 做短裙的视频网站郑州免费网站建设
  • 郑州手机网站制作淄博晨曦网站建设
  • 展示型网站制作上海有哪些建设工程公司