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


    准备工作

    这里我们准备了两个与数据库表对应的实体类,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有封装好的分页方法

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

    1. import com.baomidou.mybatisplus.annotation.DbType;
    2. import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
    3. import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
    4. import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
    5. import org.springframework.context.annotation.Bean;
    6. import org.springframework.context.annotation.Configuration;
    7. @Configuration
    8. public class MybatisPlusConfig {
    9. @Bean
    10. public MybatisPlusInterceptor mybatisPlusInterceptor() {
    11. MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
    12. interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
    13. return interceptor;
    14. }
    15. @Bean
    16. public ConfigurationCustomizer configurationCustomizer() {
    17. return configuration -> configuration.setUseGeneratedKeys(false);
    18. }
    19. }

    当然我们也可以使用PageHelper

    1. com.github.pagehelper
    2. pagehelper-spring-boot-starter
    3. 1.4.6

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

    http://t.csdnimg.cn/suBZM

    前后端分离配置

  • 相关阅读:
    计算机网络基础(一)
    python 多线程
    Windows|MySql下载与安装教程
    DevOps自动化测试的原则和实践
    vertx的学习总结7之用kotlin 与vertx搞一个简单的http
    web前端期末大作业——HTML+CSS+JavaScript仿王者荣耀游戏网站设计与制作
    面试中经常问到的几个问题,快来看看能答对几道吧
    ubuntu16.04 gtx1080ti 安装pytorch
    科教兴国 | 拓世集团携手中国航天广电集团,打造《AI+教育平台》
    [运维|中间件] 东方通TongWeb使用笔记
  • 原文地址:https://blog.csdn.net/Z15800020057/article/details/134209883