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

通用Mapper是一个提供常见增删改查操作的MyBatis框架,它减少了手动编写简单SQL的时间。通过继承其接口,开发者可以利用预定义的方法进行数据库交互。此外,通用Mapper还支持自定义注解,如@Transient和@Table,以处理特定场景下的需求。当遇到通用Mapper未涵盖的SQL语句时,仍可采用传统方式手动编写。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通用 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
差不多就是这些了,有空在更!!!

个人博客:juhaozero的博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值