Loading

Mybatyis-Plus学习

Mybatis常用注解

@TableName:

  • 表名注解
  • 设置实体类所对应的表名

@TableId:

  • 主键注解
  • 将属性所对应的字段设置为主键
    • value属性指定主键字段
    • type属性指定主键类型

IdType(enum类型)

描述
AUTO 数据库 ID 自增
NONE 无状态,该类型为未设置主键类型(注解里等于跟随全局,全局里约等于 INPUT)
INPUT insert 前自行 set 主键值
ASSIGN_ID 分配 ID(主键类型为 Number(Long 和 Integer)或 String)(since 3.3.0),使用接口IdentifierGenerator的方法nextId(默认实现类为DefaultIdentifierGenerator雪花算法)
ASSIGN_UUID 分配 UUID,主键类型为 String(since 3.3.0),使用接口IdentifierGenerator的方法nextUUID(默认 default 方法)
@Data
@TableName("t_user")
public class User{
    //数据库会将id默认为主键,所以有时需要自定义主键
    @TableId(value="id",type=IdType.AUTO)
    private int uid;
    
    private String name;
    
    private String gender;
        
    
}

@TableField

  • 字段注解(非主键)

@TableLogic

  • 逻辑删除注解
属性 类型 必须指定 默认值 描述
value String "" 逻辑未删除值
delval String "" 逻辑删除值

条件构造器wrapper


image

AbstractWrapper

用于生成sql的where条件

  • eq: 判断是否相等 eq("name","xiaoming")等价于where name = 'xiaoming'

    • eq(R column, Object val)
    • eq(boolean condition, R column, Object val)
  • allEq: 全部相等(或部分为空)

    • allEq(Map<R, V> params)
    • allEq(Map<R, V> params, boolean null2IsNull)
    • allEq(boolean condition, Map<R, V> params, boolean null2IsNull)
      :::success
      params: key为数据库字段名,value为数据库字段值
      **null2IsNull: **为true时,当mapvalue的值为空时,调用IsNull方法,为false时则valuenull则忽略。
      allEq({id:1, name:"xiaoming",gender:null},gender != null)等价于where id=1 and name='xiaoming'
      :::
  • ne: 不等于(<>)ne("age",20)等价于age<>20

    • ne(R column, Object val)
    • ne(boolean condition, R column, Object val)
  • gt: 大于> gt("age",20)等价于age>20

    • gt(R column, Object val)
    • gt(boolean condition, R column, Object val)
  • lt: 小于< lt("age",20)等价于age<20

    • lt(R column, Object val)
    • lt(boolean condition, R column, Object val)
  • ge: 大于等于>= ge("age",20)等价于age >= 20

    • ge(R column, Object val)
    • ge(boolean condition, R column, Object val)
  • le: 小于等于<= le("age",20)等价于age <= 20

    • le(R column, Object val)
    • le(boolean condition, R column, Object val)
  • between: 在 1 AND 2 之间,between("age",20,30)--->age between 20 and 30

    • between(R column, Object val1, Object val2)
    • between(boolean condition, R column, Object val1, Object val2)
  • notBetween: 不在 1 AND 2 之间

    • notBetween(R column, Object val1, Object val2)
    • notBetween(boolean condition, R column, Object val1, Object val2)
  • like: 模糊匹配,like("name","李")--->name like '%李%'(名字中带李的)

    • like(R column, Object val)
    • like(boolean condition, R column, Object val)
  • notLike: notLike("name","李")--->name not like '%李%'

  • likeLeft: likeLeft("name","李")--->name not like '%李'(左模糊)

  • likeRight: likeRight("name","李")--->name not like'李%'(右模糊)

  • isNull: isNull("name")--->name is null判断name是否为空

    • isNull(R column)
    • isNull(boolean condition, R column)
  • isNotNull: isNotNull("name")---> name is not null

  • in: in("age",{1,2,3})---> age in (1,2,3) **in("age",1,2,3)---> age in (1,2,3)

    • in(R column, Collection<?> value)
    • in(boolean condition, R column, Collection<?> value)
  • notIn: notIn("age",{1,2,3})---> age not in (1,2,3)

  • inSql: 对应sql语句中的in操作,允许传递sql语句给方法,例如:inSql("id", "1,2,3,4,5,6")--->

id in (1,2,3,4,5,6)inSql("id","select id where id >5")-->id in (select id from user where id >5)

  • inSql(R column, String inValue)
  • inSql(boolean condition, R column, String inValue)
  • notInSql: 类似与inSql
  • groupBy: groupBy("id","name")--->group by id,name
    • groupBy(R... columns)
    • groupBy(boolean condition, R... columns)
  • orderByAsc: 升序排列(SQL语言的默认排序方式是升序ASC)
    • orderByAsc(R... columns)
    • orderByAsc(boolean condition, R... columns)
  • orderByDesc: 降序排列
    • orderByDesc(R... columns)
    • orderByDesc(boolean condition, R... columns)
  • orderBy: 自定义排序方式(isAsc:是否升序排列
    • orderBy(boolean condition, boolean isAsc, R... columns)
  • having:
    • having(String sqlHaving, Object... params)
    • having(boolean condition, String sqlHaving, Object... params)
  • func:
  • or:
  • and:
  • nested:
  • apply:
  • last:
  • exists:
  • notExists:

文章写自语雀文档,使用此链接页面效果更好https://www.yuque.com/docs/share/88565fbd-0bea-4935-9c6e-4c342c3c504f?#

posted @ 2022-08-05 21:53  我只有一天的回忆  阅读(25)  评论(0编辑  收藏  举报