SpringBoot 集成 MybatisPlus 七——ActiveRecord 查询

SpringBoot 集成 MybatisPlus 七——ActiveRecord 查询

1 依据ID查询

在 ActiveRecord 形式中,执行数据库的各种查询操作。

1.1 在目标中设置ID

首先创立要查询的目标,并通过 set() 办法设置要查询的记载ID。

SpringBoot 集成 MybatisPlus 七——ActiveRecord 查询

在控制台输出的SQL句子如下:

==> Preparing: SELECT id,username,gendar,remark FROM user WHERE id=?

==> Parameters: 12(Integer)

<== Columns: id, username, gendar, remark

<== Row: 12, 赵四, 女, 英语老师

<== Total: 1

Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@249e0271]

User(id=12, username=赵四, gendar=女, remark=英语老师)

1.2 在查询参数中设置ID

创立要查询的目标,不在目标中设置ID特点,在调用selectById() 办法时,即将查询的 ID 作为参数传入到办法中。

SpringBoot 集成 MybatisPlus 七——ActiveRecord 查询

在控制台输出的SQL句子如下:

==> Preparing: SELECT id,username,gendar,remark FROM user WHERE id=?

==> Parameters: 12(Integer)

<== Columns: id, username, gendar, remark

<== Row: 12, 赵四, 女, 英语老师

<== Total: 1

Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@78525ef9]

User(id=12, username=赵四, gendar=女, remark=英语老师)

关于前两种查询方法,虽然在程序中的书写方法不太相同,可是关于 MybatisPlus 中执行的 SQL 句子,在控制台的输出中,能够看到是完全相同。

1.3 异常情况

1.3.1 未设置ID信息

在运用ID查询记载时,而没有设置ID特点或者在查询办法中设置ID,程序在执行中将会报错。

SpringBoot 集成 MybatisPlus 七——ActiveRecord 查询

报错信息如下:

com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: selectById primaryKey is null.

1.3.2 重复设置ID

在运用ID查询记载时,既在创立的目标中设置了ID,又在 selectById() 办法中也指定了ID,并且两个ID不相同。

SpringBoot 集成 MybatisPlus 七——ActiveRecord 查询

此刻,程序会优先运用 selectById() 办法中指定的 ID 进行查询。

==> Preparing: SELECT id,username,gendar,remark FROM user WHERE id=?

==> Parameters: 25(Integer)

<== Total: 0

Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@78525ef9]

null

2 依据挑选条件查询记载

运用QueryWrapper 查询结构器设置挑选条件,对应的办法有:

  • selectOne() 依据挑选条件得到结果集后,取出其中第一条记载;

  • selectList() 依据挑选条件得到结果集后,取出所有记载。

SpringBoot 集成 MybatisPlus 七——ActiveRecord 查询

控制台输出如下:

SpringBoot 集成 MybatisPlus 七——ActiveRecord 查询

3 查询全部记载

创立目标后不设置任何特点,即为全表查询。

SpringBoot 集成 MybatisPlus 七——ActiveRecord 查询

实践执行的SQL句子如下

SpringBoot 集成 MybatisPlus 七——ActiveRecord 查询

4 分页查询

要实现分页功能,必需要先创立分页组件,并运用注解 @Configuration@Bean 将该组件注册到 SpringBoot 中:

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class ConfigureUtil {
    //配置分页插件
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
}

创立分页目标,并指定当前页,每页记载条数;

创立 QueryWrapper 查询结构器,设置挑选条件。

SpringBoot 集成 MybatisPlus 七——ActiveRecord 查询

执行SQL过程如下,能够看到先后进行了两次查询,与运用 Mapper 目标查询的过程相同:

第一次查询记载总数;

第二次查询指定分页条件的记载。

SpringBoot 集成 MybatisPlus 七——ActiveRecord 查询