准备工作

这里我们准备了两个与数据库表对应的实体类,stu为学生表,cls为班级表

类属性上的注解如 @TableId等 为Mybatis-Plus的注解,使用mybatis会无视掉这些注解

在Stu 类的最后一个属性我们定义了Cls实体类的对象,对于单表查询,这个对象不会进行映射,所以结果会为Null。

这两个表只是结构实例,后面会用到其他表

Mybatis

Mybatis-Plus就是对Mybatis的单表查询功能的增强,所以这里我们先说Mybatis

Mybatis单表

Xml

这里可以开启字段的自动映射

但是需要主要,要求对象的属性名需要与数据库字段名对应

同样开启自动映射也可以在 配置文件中 去开启,呢样就不需要这里去开启了

注解

Mybatis多表

Xml

注解

注解这里我们采用了另外的表进行示例,逻辑代码都是一样的

多对多

这里会有多对多的情况,在上图中我们使用的为 one=@One()

多表时使用 many=@Many() 其他都是一样的

但是要注意对于 many=@Many(select="这个方法返回的呢个对象要是一个 List类型或者其他集合类型不能为单对象了")

Mybatis-Plus

Mybatis-Plus就是对Mybatis的单表查询功能的增强,通常我们使用Mybatis-Plus都是配合Spring-boot项目一起使用,因此项目中多数都是采用注解的形式。

Mybatis-Plus的单表查询我们只需要让我们的mapper去基础Plus的BaseMapper即可

我们在Service层装配完mapper的Bean后就可以直接调用那些封装好的方法

同样的ServiceImpl也进行了继承

因此我们在 Controller层也可以直接调用大量封装好的方法

当然Plus也有很强大的条件查询功能

条件构造器 | MyBatis-Plus (baomidou.com)(Plus的中文官方文档)

在多表查询方面,Plus需要Mybatis的Xml对字段进行映射,比较麻烦,一般不会使用,注解方式比较方便。

分页

Mybatis-Plus有封装好的分页方法

但是使用之前我们需要进行配置

import com.baomidou.mybatisplus.annotation.DbType;

import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;

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 MybatisPlusConfig {

@Bean

public MybatisPlusInterceptor mybatisPlusInterceptor() {

MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();

interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));

return interceptor;

}

@Bean

public ConfigurationCustomizer configurationCustomizer() {

return configuration -> configuration.setUseGeneratedKeys(false);

}

}

当然我们也可以使用PageHelper

com.github.pagehelper

pagehelper-spring-boot-starter

1.4.6

多表联查,模糊查询,分页实例

http://t.csdnimg.cn/suBZM

前后端分离配置

推荐链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: