1.特性:
1.无侵入:引入mybatis-plus不会对mybatis框架产生任何影响因为他是在mybatis的基础上进行了扩展
2.依赖少:仅仅依赖mybatis和mybatis-Spring
3.损耗小:启动会自动注入基本的curd(增删改查)操作性能基本无损耗直接面向对象操作
4.预防sql注入:内置sql注入剥离器,防止sql注入
5.多主键策略:支持4中的主键策略,内含分布式唯一id生成器
6.支持热加载:mapper对应的xml支持热加载
热加载:在运行时重新加载class(开发环境)基于字节码的更改,适用于开发
热部署:在运行时从新加载整个应用(生产环境),清空内存从新打包 ,适用于项目
2.常用注解
1.@TableName
属性 类型 必填 默认值
value String 否 无 表名
resyltMap String 否 无 xml中resultMap的id
schema String 否 无 schema(@since 3.1.1)
keepGlobalPrefix boolean 否 false 是否保持全局的tablePrefix的值(如果设置了全局tablePrefix且自行设置了value的值)
2.@TableId
属性 类型 必填 默认值
value String 否 无 主键字段名
type Enum 否 IdType.NONE 主键类型
type的值:
AUTO 数据库自增
INPUT 自行输入
ID_WORKER 分布式全局唯一ID 长整型类型(long)
UUID 32位UUID字符串
NONE 无状态
ID_WORKER_STR 分布式全局唯一ID字符串类型
3.@TableFieId
属性 类型 必填 默认值
value String 否 无 字段名
el String 否 无 映射位原生#{ } 逻辑相当于写在xml里的#{}部分
exist boolean 否 true 是否为数据库表字段
condition String 否 无 where实体查询比较条件,有值设置则按设置的值为准,没有则为默认全局的
update String 否 无 表示更新时会set
fill Enum 否 FieIdFill.DEFAULT 字段自动填充策略
select boolean 否 true 是否进行select查询
keepGlobalFormat boolean 否 false 是否保持使用全局的Format进行处理
condition属性:
EQUAL 等于
NOT_EQUAL 不等于
LIKE 模糊查询
LIKE_LEFT 模糊查询小于
LIKE_RIGHT 模糊查询大于
4.@Version 乐观锁注解
使用:在需要乐观锁的表上加一个version字段 int类型 最好默认为1
在实体类的字段上加上@Version注解
乐观锁大多是基于数据版本Version记录机制实现,
读取数据时将此版本号一同读出,之后更新时对此版本号加一,此时将版本号和数据库的进行对比
如果提交的版本号大于数据库当前版本号则更新,否则认为是过期数据
5.@EnumValue 枚举注解
6.@TableLogic 表字段逻辑处理注解(逻辑删除注解)
属性 类型 必填 默认值
value String 否 无 逻辑未删除值
delval String 否 无 逻辑删除值
7.@KeySequence 序列主键策略
属性 类型 必填 默认值
value String 否 无 序列名
clazz Class 否 Long.class id的类型,可以指定String.class,这样返回的Sequence值是字符串"1"