通用mapper快速入门及原理简介

一,mapper框架介绍
当我们在项目中使用Mybatis的开发者大多会因为繁多的XML映射配置而头痛不已,即使使用注解,大量的SQL语句也是不可避免的,当数据库表结构发生变动时,所有对应的sql和实体类都得修改,基于这个,于是通用Mapper出现了.
通用Mapper是一款用于单表增删改查的Mybatis插件,开发人员可以省去编写sql语句和在DAO层编写任何方法,毫不客气的说,使用这个通用Mapper甚至能改变你对Mybatis单表基础操作不方便的想法,使用它你能简单的使用单表的增删改查,包含动态的增删改查.程序使用拦截器实现具体的执行Sql,完全使用原生的Mybatis进行操作.
二,mapper原理简介
通用Mapper通过让dao层接口继承Mapper<T.class> 接口,在运行期通过反射获取实体类T的信息,并构造出对应的SQL,dao层接口只需要直接调用父接口提供的方法,便可完成对应SQL的调用和数据库查询
三,通用Mapper的使用及优势
优点:
• 使用通用Mapper可以让你方便的直接使用单表的增删改查方法
• 你不需要使用MyBatis生成器来生成一大堆的XML内容和接口方法。
• 你只需要继承通用Mapper的接口即可获得大量直接可用的方法。
• 表有变化的时候,只需要修改实体类,不需要重新生成接口和XML。
快速入门使用通用Mapper步骤:
1.引入通用Mapper依赖或者Jar包
通用mapper快速入门及原理简介
2.修改(或生成)实体类
• @Id 主键字段必须加这个注解,联合主键的时候,可以给多个字段加@Id注
解。和PrimaryKey有关的方法都需要该注解标记的字段,所以实体中至少要
有一个标记@Id的字段。
• @Table,@Column注解,默认情况下驼峰命名和数据库的下划线命名互相转
换,sysUser对应表中的sys_user,当实体类名和字段名不是按照这种默认规
则转换时,使用这俩注解指定,例如@Table(name=“sysuser”),列类似。
• @Transient注解,当实体中的字段不是表中的字段时,需要加这个注解,这
样在和表转换时,会忽略该字段。
• @GeneratedValue(generator=“JDBC”)注解,这里只介绍这一种,其他的参
考Mapper文档,这个配置可以自动回写自增字段的值,相当于XML配置中的
userGeneratedKeys=“true” keyProperty=“id”
• @OrderBy注解可以指定表默认的排序规则
• @NameStyle注解用来配置对象名/字段名和数据库表名/字段之间的转换方式
通用mapper快速入门及原理简介
3.配置通用Mapper(springboot)
通用mapper快速入门及原理简介
4创建实体对应的具体的Dao,可以编写自定义查询方法,然后在xml配置具体的sql
通用mapper快速入门及原理简介
通用mapper快速入门及原理简介
5,在Service中使用
通用mapper快速入门及原理简介
常用的CRUD方法mapper都有为我们提供,也可以自定义封装查询:

查询
select(T t) :根据传入对象属性查询,返回实体类元素集合。
selectOne(T t)) :根据传入的对象属性查询,存在多个返回值时抛出异常。
selectAll() :返回实体类元素集合。
selectCount(T t)) :根据传入的对象属性查询,返回总记录数。
删除
delete(T t)) 根据传入对象属性,删除所有查找到的记录。
deleteByPrimaryKey(Object key) 根据传入的主键,删除对应记录。
更新
updateByPrimaryKey(Object o) 根据传入对象属性,更新所有字段 。
updateByPrimaryKeySelective(T t) 只更新对象属性非空字段 。
插入
insert(T t)) 根据传入对象属性,插入所有属性对应的字段。
insertSelective(T t)) 根据传入对象属性,只插入对象属性非空字段

复杂条件查询,通用Mapper复杂条件查询使用的是Example
通用mapper快速入门及原理简介
原文参考链接
mapper作者链接