mybatis-plus
目录
===========================================================================================
官网
直接看官网文档或视频,此笔记只是学习笔记,并不全面。
官网地址
官网视频
mybatis的sql日志打印方法:
将日志级别设置成最低的trace级别。
默认
- 对象的属性为null,默认在insert/update语句中就不会出现该字段。
- insert一个对象时,如果对象有id字段,默认是使用雪花算法生成值,卸载insert语句中。
常用注解
- @TableName("t_table_name") 官网链接
//比如有些公司要求表前面要加上指定的前缀,如t,但是代码中的对象上没有加。
resultMap 属性能指定xml 中 resultMap 的 id
excludeProperty 属性能排除属性名@since 3.3.1 - @TableId
//能指定表的主键。 - @TableField("表字段的名字")官网链接
//指定表的字段名,这样Java对象的属性就能和表的列对应上。
update属性能实现乐观锁。具体看官网怎么操作的。 - @Version 这个也能实现乐观锁
- @EnumValue 普通枚举类注解(注解在枚举字段上)
- @TableLogic 表字段逻辑处理注解(逻辑删除)
- @KeySequence 序列主键策略 oracle专用
- @InterceptorIgnore
- @OrderBy 内置 SQL 默认指定排序,优先级低于 wrapper 条件查询
排除非表字段的三种方式
- Java对象的属性使用transient字段修饰。(不参与序列化)
- Java对象的属性标志为静态变量。
- Java对象的属性使用@TableField(exist=false)
查询
(一)普通查询
继承了BaseMapper,就能使用他的方法,这些都是普通查询。
(二)条件查询
- 两种获取QueryWrapper的方式:
1.new QueryWrapper<>();
2.Wrappers.QueryWrapper(); - QueryWrapper的方法
暂略见官网
(三)select不列出全部字段
使用QueryWrapper#select方法
官网视频地址
QueryWrapper#lt(condition,x,x),这种condition的作用
简化if else的判断。
new QueryWrapper(entity)带参数的构造器,参数为实体类。
他的作用就是:实体的属性有值,就会最终拼接到where上,和QueryWrapper的条件方法不冲突,可以叠加。
属性属性的值默认是等值比较,想要改变这个规则,可以去实体类的属性上设置@TableField(Condition="xxx")以改变策略。
条件构造器中的 allEq 方法的作用。
lambda条件构造器
lambda条件构造器一共有4种。
创建lambda条件构造器的3种方式
- new QueryWrapper
().lambda(); - new LambdaQueryWrapper
(); - Wrappers.
lambdaQuery();//这个需要一个泛型
自定义sql
既想使用wrapper,又想自定义sql;这种情况mybatis-plus也支持,但是要求版本>=3.0.7
视频网址
分页查询
mybatis的分页缺点:
是把数据全部查出来后,在内存中进行分页。
mybatis-plus的优点:
使用物理分页,性能优。
mybatis-plus分页查询实操
mybatis-plus能支持连表查询,这个就要使用到上面的自定义sql方式。