mybatis-plus

===========================================================================================

官网

直接看官网文档或视频,此笔记只是学习笔记,并不全面。
官网地址
官网视频

mybatis的sql日志打印方法:

将日志级别设置成最低的trace级别。

默认

  1. 对象的属性为null,默认在insert/update语句中就不会出现该字段。
  2. insert一个对象时,如果对象有id字段,默认是使用雪花算法生成值,卸载insert语句中。

常用注解

  1. @TableName("t_table_name") 官网链接
    //比如有些公司要求表前面要加上指定的前缀,如t,但是代码中的对象上没有加。
    resultMap 属性能指定xml 中 resultMap 的 id
    excludeProperty 属性能排除属性名@since 3.3.1
  2. @TableId
    //能指定表的主键。
  3. @TableField("表字段的名字")官网链接
    //指定表的字段名,这样Java对象的属性就能和表的列对应上。
    update属性能实现乐观锁。具体看官网怎么操作的。
  4. @Version 这个也能实现乐观锁
  5. @EnumValue 普通枚举类注解(注解在枚举字段上)
  6. @TableLogic 表字段逻辑处理注解(逻辑删除)
  7. @KeySequence 序列主键策略 oracle专用
  8. @InterceptorIgnore
  9. @OrderBy 内置 SQL 默认指定排序,优先级低于 wrapper 条件查询

排除非表字段的三种方式

  1. Java对象的属性使用transient字段修饰。(不参与序列化)
  2. Java对象的属性标志为静态变量。
  3. Java对象的属性使用@TableField(exist=false)

查询

(一)普通查询

继承了BaseMapper,就能使用他的方法,这些都是普通查询。

(二)条件查询

  1. 两种获取QueryWrapper的方式:
    1.new QueryWrapper<>();
    2.Wrappers.QueryWrapper();
  2. 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种方式

  1. new QueryWrapper().lambda();
  2. new LambdaQueryWrapper();
  3. Wrappers.lambdaQuery();//这个需要一个泛型

自定义sql

既想使用wrapper,又想自定义sql;这种情况mybatis-plus也支持,但是要求版本>=3.0.7
视频网址

分页查询

mybatis的分页缺点:

是把数据全部查出来后,在内存中进行分页。

mybatis-plus的优点:

使用物理分页,性能优。

mybatis-plus分页查询实操

视频网址

mybatis-plus能支持连表查询,这个就要使用到上面的自定义sql方式。

更新

删除

AR模式

主键策略

基本配置

通用Service

posted on 2024-01-27 06:48  wucanqin  阅读(64)  评论(0编辑  收藏  举报

导航