mybatis-plus学习


https://mp.baomidou.com/

一切以官方文档为主


安装

Spring Boot
Maven:

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.3.1.tmp</version>
</dependency>

常用注解

@TableName

  • 描述:表名注解
    如果数据库表名字和java实体类类名不对应时,就使用该注解映射

@TableField

  • 描述:字段注解(非主键)
    如果数据库字段和java实体类属性名不对应时,就可以使用该注解映射

扩展:
排除非表字段的三种方式

  • transient: 用transient修饰属性
  • static: 用static修饰属性
  • @TableField: @TableField(exist = false),代表该属性在数据库中不存在

mp实用不常见CRUD方法

查询

  • 根据id批量查询:selectBatchIds(@Param("coll") Collection<? extends Serializable> idList);


    image.png

    image.png
  • 根据map查询:List<T> selectByMap(@Param("cm") Map<String, Object> columnMap);

   Map<String,Object> columnMap = new HashMap<>();
   columnMap.put(key,value);
   columnMap.put("name","李艺伟");

map里的键值对就相当于
where key = vaule and name = "李艺伟"
注意:key的值时数据库表字段的值,并非实体类属性

image.png

image.png

条件构造器

  • 查询条件构造器 QueryWrapper 继承 AbstractWrapper提供诸多条件构造方法

例:
1.基本条件构造


image.png
image.png

2.时间格式化构造date_format(_time,'%Y-%m-%d')和 in 关键字条件构造

  • apply()
  • inSql("condition","sql")


    image.png

    image.png

3.()sql


image.png
image.png
  • nested()


    image.png
image.png
  • in()


    image.png

    image.png
  • select("colunm1","colunm2"..):指定要查询字段
    方式一:


    image.png

    image.png
  • 方式二:


    image.png

    image.png

实体参数作为条件构造的参数

image.png
image.png

注意:
SELECT id,create_time,name,manager_id,email,age FROM user WHERE name=? AND age=?
这种方式构建的sql的时,所有条件均为 “=”,非 “=”条件怎么办呢:

在实体类对应属性添加注解@TableField(condition = SqlCondition.xx)

image.png

image.png

image.png


使用条件构造器的自定义分页sql

首先我们使用xml自定义方式,我们要在yml配置:

mybatis-plus:
  mapper-locations: classpath*:mapper/*mapper.xml

  • mapperLocations :
    MyBatisMapper 所对应的 XML 文件位置,如果您在 Mapper 中有自定义方法(XML 中有自定义实现),需要进行该配置,告诉 Mapper 所对应的 XML 文件位置

接着在mapper的java类中自定义方法:

image.png

(Constants.WRAPPER)page的别名是固定的

最后在xml文件写查询:

image.png

${ew.customSqlSegment}值是固定的
调用且展示结果
image.png

image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容