当前位置: 首页>编程语言>正文

Mybatis-Plus

Mybatis-Plus

    • 环境准备
    • 条件构造器
      • QueryWrapper
      • UpdateWrapper
      • 基于Lambda的Wrapper
    • 基本的CRUD接口
    • 常用的条件查询

黑马mybatis_plus文档

环境准备

  1. 在application.yaml中修改jdbc参数为你自己的数据库参数
spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/mp?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: MySQL123
logging:
  level:
    com.itheima: debug
  pattern:
    dateformat: HH:mm:ss
  1. 引入依赖
 <dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.3.1</version>
</dependency>
  1. 定义Mapper
package com.itheima.mp.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.itheima.mp.domain.po.User;

public interface UserMapper extends BaseMapper<User> {
}

泛型中的User就是与数据库对应的PO.

MybatisPlus就是根据PO实体的信息来推断出表的信息,从而生成SQL的。默认情况下:

  • MybatisPlus会把PO实体的类名驼峰转下划线作为表名
  • MybatisPlus会把PO实体的所有变量名驼峰转下划线作为表的字段名,并根据变量类型推断字段类型
  • MybatisPlus会把名为id的字段作为主键

但很多情况下,默认的实现与实际场景不符,因此MybatisPlus提供了一些注解便于我们声明表信息
@TableName

  • 描述:表名注解,标识实体类对应的表
  • 使用位置:实体类

@TableId

  • 描述:主键注解,标识实体类中的主键字段
  • 使用位置:实体类的主键字段

@TableField

  • 描述:普通字段注解**

条件构造器

Mybatis-Plus,在这里插入图片描述,第1张

QueryWrapper

无论是修改、删除、查询,都可以使用QueryWrapper来构建查询条件。

UpdateWrapper

基于BaseMapper中的update方法更新时只能直接赋值,对于一些复杂的需求就难以实现。

-----无论是QueryWrapper还是UpdateWrapper在构造条件的时候都需要写死字段名称,会出现字符串魔法值-----

基于Lambda的Wrapper

  • LambdaQueryWrapper
  • LambdaUpdateWrapper
@Test
void testLambdaQueryWrapper() {
    // 1.构建条件 WHERE username LIKE "%o%" AND balance >= 1000
    QueryWrapper<User> wrapper = new QueryWrapper<>();
    wrapper.lambda()
            .select(User::getId, User::getUsername, User::getInfo, User::getBalance)
            .like(User::getUsername, "o")
            .ge(User::getBalance, 1000);
    // 2.查询
    List<User> users = userMapper.selectList(wrapper);
    users.forEach(System.out::println);
}

Service接口
通用接口为IService,默认实现为ServiceImpl,其中封装的方法可以分为以下几类:

  • save:新增
  • remove:删除
  • update:更新
  • get:查询单个结果
  • list:查询集合结果
  • count:计数
  • page:分页查询

基本的CRUD接口

新增:Mybatis-Plus,在这里插入图片描述,第2张
删除
Mybatis-Plus,在这里插入图片描述,第3张
修改:
Mybatis-Plus,在这里插入图片描述,第4张
Get:
Mybatis-Plus,在这里插入图片描述,第5张
List:Mybatis-Plus,在这里插入图片描述,第6张
Count:
Mybatis-Plus,在这里插入图片描述,第7张

常用的条件查询

eq --> equal等于
ne--> not equal不等于
gt --> greater than大于
lt --> less than小于
ge --> greater than or equal 大于等于
le --> less than or equal 小于等于
in --> in 包含(数组)
isNull --> 等于null
between -->2个条件之间(包括边界值)
like-->%XX%、likeLeft-->%XX、likeRight-->XX%
orderByDesc-->降序、orderByAsc-->升序

https://www.xamrdz.com/lan/5pk1995530.html

相关文章: