SpringBoot 集成 MybatisPlus 十二 您所在的位置:网站首页 mybatisplus不支持两表查询 SpringBoot 集成 MybatisPlus 十二

SpringBoot 集成 MybatisPlus 十二

2023-04-24 21:02| 来源: 网络整理| 查看: 265

image.png

1 代码生成器简介

代码生成器可以自动生成MybatisPlus代码。

如果不愿意手动编写和数据表对应的实体类及相关映射文件,MybatisPlus为我们提供了相关的效率提升工具(偷懒神器)——代码生成器,它可以读取数据库中的表信息,生成相应的可以供我们使用 MybatisPlus 代码。

与 Mybatis 的代码生成器 Mybatis Generator 二者的区别是:

Mybatis Generator 是基于xml文件进行配置,MybatisPlus 代码生成器是基于 java 代码进行配置; Mybatis Generator 可以生成实体类、mapper接口、mapper映射文件;MybatisPlus代码生成器可以生成实体类、mapper接口、mapper映射文件、service类、controller类,功能更加强大。 2 添加依赖

在项目下的 pom.xml 文件中添加 mybatis-plus代码生成器需要的依赖。

com.baomidou mybatis-plus-generator 3.5.1 org.apache.velocity velocity-engine-core 2.2 复制代码 3 编写代码生成器的配置类

在配置类中除了数据库连接信息(URL,用户名,密码),主要分为三部分:

全局配置 包配置 生成策略配置 3.1 全局配置

在全局配置中,可以设置生成类里注释信息中的:

作者信息、

日期格式,及:

生成类目的地址的父目录信息、

开启swagger设置、

日期类型等。

3.2 包配置

在包配置部分,主要设置所有生成类包名所在前缀信息,按照不同层级区分的包名。

例如 实体层、mapper层、服务层、控制层的包名信息。

3.3 策略配置

在策略配置项中,主要配置的是生成类格式及数据表与生成类的映射关系信息:

如 表名前缀、表名后缀、开始配置实体类、生成的实体类中启用 lombok 模板、表中列名与实体类属性名之间是否使用下划线与驼峰的转换关系等。

3.4 具体配置信息 import com.baomidou.mybatisplus.generator.FastAutoGenerator; import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; public class MyGeneratorUtil { public static void main(String[] args) { FastAutoGenerator.create("jdbc:mysql://127.0.0.1:3366/test", "root", "123456") //全局配置 .globalConfig(builder -> { builder.author("tester") //设置作者 .commentDate("yyyy-MM-dd") //注释日期格式 .outputDir(System.getProperty("user.dir") + "/testMybatisPlusAR/src/main/java") //指定输出目录 .fileOverride(); //覆盖文件 }) //包配置 .packageConfig(builder -> { builder.parent("com.test2") //包名的前缀 .entity("domain") //实体类包名 .mapper("mapper") //mapper接口包名 .service("service") //service包名 .controller("controller") //controller包名 .xml("mapper"); //映射文件包名 }) //策略配置 .strategyConfig(builder -> { builder.addInclude("User") //设置需要生成的表名或排除的表名,支持多张表 .addTablePrefix("") //设置表名前缀 .addTableSuffix("") //设置表名后缀 .entityBuilder() //开始实体类配置 .enableLombok() //开启lombok模型 .naming(NamingStrategy.underline_to_camel) //表名下划线转驼峰 .columnNaming(NamingStrategy.underline_to_camel); //列名下划线转驼峰 }) .execute(); } } 复制代码 4 生成代码

运行上一步中创建的配置类,生成代码。

生成的代码效果如下

image.png

打开生成的实体类,因为所有属性及属性类型都是从数据库中读取,所以由程序控制的乐观锁及逻辑删除等功能是无法获取到的,缺少相应的注解外,可以看到与我们自己创建实体类已经相当接近,可以大幅减少实际的工作量。

package com.test2.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import lombok.Getter; import lombok.Setter; /** *

* *

* * @author tester * @since 2023-04-15 */ @Getter @Setter @TableName("user") public class User implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.AUTO) private Integer id; private String username; private String gendar; private String remark; private Integer version; private Integer isDeleted; } 复制代码


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有