什么是MybatisPlus,MybatisPlus原理

MybatisPlus官网https://baomidou.com/

MybatisPlus从字面理解就可以知道是Mybatis的增强版本,从上述官网的图片即可大概了解

MybatisPlus包含了Mybatis,将Mybatis依赖替换成MybatisPlus不影响原项目使用,依然可以使用自己已经写好的SQL语句,且封装了一系列curd方法可供使用,大大降低了操作数据库的代码量

使用MybatisPlus的两个步骤

第一步:将Mybatis依赖替换成MybatisPlus

第二步:将Mapper接口继承BaseMapper即可使用

Mybatis原理

MybatisPlus原理:通过扫描实体类,并基于反射获取实体类信息作为数据库表信息

MybatisPlus如何自动实现增删改查呢,如何知道表名以及字段名呢?
在使用MybatisPlus时有一个默认的约定,在执行增删改查时,SQL语句的表明默认是泛型指定的类名驼峰转下划线作为表明,例如:
MemberUser(类名)在自动进行SQL语句的编写时会转成Member_User对数据进行增删改查
同理,剩下的约定就是,名为类中名为id的属性会被自动理解成是数据库表的主键
变量名驼峰转下划线也自动理解为是表的字段名

但是往往根据这些约定转换后也会和数据表的表名和字段名不一致,所以提供了注解来处理这个问题
以下是常用的注解
@TableName:用来指定表名;   例如:类名为User加上注解@TableName("tb_user")来指定这个User类对应的数据表是"tb_user"
@TableId:用来指定表中的主键字段信息 ; 例如:@TableId(type=IdType.AUTO)       其中AUTO代表自增长,id属性一定要添加自增长注解,否则就默认使用ASSIGN_ID,也就是雪花算法生成一个唯一且很复杂的id
@TableField:用来指定表中的普通字段信息   ;当类的属性在数据表中没有时,可以加上@TableField(exist=false)代表此属性不需要参与数据表的增删改查


Mybatis常见配置

常见配置绝大多数都有默认值,不需要更改
更改一下扫描的包名就行
mybatis-plus:
  type-aliases-package: classpath*:mapper/*.xml

mp核心功能(条件构造器,自定义SQL):


1.条件构造器:


用来进行复杂的数据库操作
通过Wrapper来进行复杂的操作:QueryWrapper,UpdateWrapper,LambdaQueryWrapper,LambdaUpdateWrapper
最好使用Lambda,因为前两个的字段都是写死的(硬编码)
QuerWrepper和LambdaQueryWrapper通常用来构建select、delete、update的where条件部分(最常用)
UpdateWrapper和LambdaUpdateWrapper通常只有在set语句比较特殊才使用(很少用)

2.自定义SQL语句

mp更擅长写where语句
mp来写where部分的语句,剩下的自己写
个人感觉不是很好用,不再过多赘述

3.mp的Service接口

/*
使用mp的Service接口来自动生成service层,mp的Service接口里面有非常多的方法
可以看到我的接口和实现类都是空白的
接口继承了IService<User>   #User是我自己写的实体类,UserMapper也是
实现类实现自己写的接口再继承ServiceImpl<UserMapper,User>
如果我没猜错的话使用这个mp的Service接口前提必须是UserMapper继承了mp的BaseMapper<User>,不然如何操作数据库
*/

MybatisPlus还有很多功能,后面再来学,先把Mybatis用熟练先

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值