Mybatis与Mybatis-Plus(注解与Xml)(单表与多表)

准备工作

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

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

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

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

Mybatis与Mybatis-Plus(注解与Xml)(单表与多表)_第1张图片

Mybatis与Mybatis-Plus(注解与Xml)(单表与多表)_第2张图片

Mybatis与Mybatis-Plus(注解与Xml)(单表与多表)_第3张图片

Mybatis

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

Mybatis单表

Xml

Mybatis与Mybatis-Plus(注解与Xml)(单表与多表)_第4张图片

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

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

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

Mybatis与Mybatis-Plus(注解与Xml)(单表与多表)_第5张图片

注解

Mybatis与Mybatis-Plus(注解与Xml)(单表与多表)_第6张图片

Mybatis多表

Mybatis与Mybatis-Plus(注解与Xml)(单表与多表)_第7张图片

Xml

Mybatis与Mybatis-Plus(注解与Xml)(单表与多表)_第8张图片

注解

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

Mybatis与Mybatis-Plus(注解与Xml)(单表与多表)_第9张图片

Mybatis与Mybatis-Plus(注解与Xml)(单表与多表)_第10张图片

Mybatis与Mybatis-Plus(注解与Xml)(单表与多表)_第11张图片

多对多

这里会有多对多的情况,在上图中我们使用的为 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后就可以直接调用那些封装好的方法

Mybatis与Mybatis-Plus(注解与Xml)(单表与多表)_第12张图片

同样的ServiceImpl也进行了继承

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

Mybatis与Mybatis-Plus(注解与Xml)(单表与多表)_第13张图片

当然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);
    }
}

Mybatis与Mybatis-Plus(注解与Xml)(单表与多表)_第14张图片

当然我们也可以使用PageHelper

        
            com.github.pagehelper
            pagehelper-spring-boot-starter
            1.4.6
        

Mybatis与Mybatis-Plus(注解与Xml)(单表与多表)_第15张图片

你可能感兴趣的:(JAVA,mybatis,xml,spring,boot)