手打SQL语句?——来试试通用 Mapper吧

做~自己de王妃 提交于 2020-01-13 05:09:17

通用 Mapper是什么

在我们使用MyBatis中,我们需要写大量的SQL语句,包括最基本的一些增删改查,这些简单的SQL语句占用了大量的时间,却不得不写,这时我通用Mapper就出现了。
通用Mapper是一个可以实现任意 MyBatis 通用方法的框架,项目提供了常规的增删改查操作以及Example 相关的单表操作
Github地址

通用Mapper支持的集成
在这里插入图片描述

快速入门

导入依赖

导入依赖
创建实体类
通用 Mapper 中,默认情况下是将实体类字段按照驼峰转下划线形式的表名列名进行转换
实体类
创建Mapper
Mapper

说明

标识主键
@Id  
表明该字段是主键
如果实体类中没有一个标记 @Id 的字段,
当你使用带有 ByPrimaryKey 的方法时,
所有的字段会作为联合主键来使用,也就会出现类似 
where id = ? and username = ? and password = ? 的情况。
主键策略
@KeySql(useGeneratedKeys = true)
表明该字段支持主键的取回(只能在主键上配置)
当执行完插入语句后可以马上将主键取回
注意:当使用主键策略时需保证数据库主键是自增列

当我们在Mapper上继承通用Mapper后继承的方法
在这里插入图片描述
通用Mapper也提供了其他拓展的接口
在这里插入图片描述
在这里插入图片描述

通用Mapper的其他注解

.@Transient

一般情况下,实体中的字段和数据库表中的字段是一一对应的,但是也有很多情况我们会在实体中增加一些额外的属性,这种情况下,就需要使用 @Transient 注解来告诉通用 Mapper 这不是表中的字段

在这里插入图片描述

@Table

声明此对象映射到数据库的数据表,通过它可以为实体指定表
当使用了该注解后不再根据实体类名进行转换,而是根据注解上的进行转换,用于解决数据库表和实体类表之间命名的冲突

在这里插入图片描述

@Column

配置映射的列名,当数据库列名和实体类名字不同时

在这里插入图片描述

最后

通用Mapper封装了一些简单的SQL语句
遇到没有的方法时,你可以正常按照 MyBatis 的用法手打
和正常用法没有任何区别。
关于通用Mapper
差不多就是这些了,有空在更!!!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!