Java--SpringBoot-42-Mybatis-10-逆向工程

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 在开发中,我们使用Mybatis最麻烦的就是写每个表对应的Mapper接口及XML配置文件,当然还有实体类,既然每个单表都有对应的一套,那么肯定就有自动生成这些代码文件的工具,那就是代码生成器:逆向工程-MyBatis generator。

在开发中,我们使用Mybatis最麻烦的就是写每个表对应的Mapper接口及XML配置文件,当然还有实体类,既然每个单表都有对应的一套,那么肯定就有自动生成这些代码文件的工具,那就是代码生成器:逆向工程-MyBatis generator。

       我们来搭一个逆向工程项目作为工具,以后建好表以后可以在这个工具项目中自动生成POJO类、Mapper接口、Mapper XML配置文件,然后直接拷贝到项目中使用,建议和自己编写的一套复杂的语句分开,这样加减字段后,直接重新生成就好,而且看起来比较整洁。

一、POM文件

<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><properties><java.version>1.8</java.version><spring.boot.version>2.1.13.RELEASE</spring.boot.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><groupId>com.cic.aliyun.car.insurance.generator</groupId><artifactId>mybatis-generator</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging><dependencies><!--mysql驱动--><!--https://mvnrepository.com/artifact/mysql/mysql-connector-java --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.25</version></dependency><!--https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core --><dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.4.0</version></dependency><!--https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-maven-plugin --><dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.4.0</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target></configuration></plugin></plugins></build></project>

       我使用的是1.4.0版本。

二、application.properties中配置数据源

#数据源的配置spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.username=rootspring.datasource.password=rootspring.datasource.url=jdbc:mysql://localhost:3306/xinghua

三、创建一个generatorConfig.xml文件来作配置

<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEgeneratorConfigurationPUBLIC"-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration><contextid="testTables"targetRuntime="MyBatis3"><commentGenerator><!--是否去除自动生成的注释true:是:false:--><propertyname="suppressAllComments"value="false"/></commentGenerator><!--数据库连接的信息:驱动类、连接地址、用户名、密码--><jdbcConnectiondriverClass="com.mysql.cj.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/xinghua"userId="root"password="root"></jdbcConnection><!--默认false,把JDBCDECIMALNUMERIC类型解析为Integer,为true时把JDBCDECIMAL和NUMERIC类型解析为java.math.BigDecimal--><javaTypeResolver><propertyname="forceBigDecimals"value="false"/></javaTypeResolver><!--targetProject:生成实体类的位置--><javaModelGeneratortargetPackage="com.xing.generator.model"targetProject="D:\code\newDemo\mybatis-generator\src\main\java"><!--enableSubPackages:是否让schema作为包的后缀--><propertyname="enableSubPackages"value="false"/><!--从数据库返回的值被清理前后的空格--><propertyname="trimStrings"value="true"/></javaModelGenerator><!--targetProject:mapper映射文件生成的位置--><sqlMapGeneratortargetPackage="com.xing.generator.mapper"targetProject="D:\code\newDemo\mybatis-generator\src\main\resources"><!--enableSubPackages:是否让schema作为包的后缀--><propertyname="enableSubPackages"value="false"/></sqlMapGenerator><!--targetPackage:mapper接口生成的位置--><javaClientGeneratortype="XMLMAPPER"targetPackage="com.xing.generator.dao"targetProject="D:\code\newDemo\mybatis-generator\src\main\java"><!--enableSubPackages:是否让schema作为包的后缀--><propertyname="enableSubPackages"value="false"/></javaClientGenerator><!--指定数据库表--><tabletableName="user"schema=""domainObjectName="User"></table><!--有些表的字段需要指定java类型<tableschema=""tableName=""><columnOverridecolumn=""javaType=""/></table>--></context></generatorConfiguration>这个文件里,一般只要修改指定数据表和对应的实体类名即可,这句:<!--指定数据库表--><tabletableName="user"schema=""domainObjectName="User"></table>

四、启动方法

packagecom.xing.generator;
importorg.mybatis.generator.api.MyBatisGenerator;
importorg.mybatis.generator.config.Configuration;
importorg.mybatis.generator.config.xml.ConfigurationParser;
importorg.mybatis.generator.internal.DefaultShellCallback;
importjava.io.File;
importjava.util.ArrayList;
importjava.util.List;
publicclassGeneratoerMybatis {
publicvoidgenerator() throwsException {
List<String>warnings=newArrayList<String>();
booleanoverwrite=true;
// 指定 逆向工程配置文件FileconfigFile=newFile("D:\\code\\newDemo\\mybatis-generator\\src\\main\\resources\\generatorConfig.xml");
ConfigurationParsercp=newConfigurationParser(warnings);
Configurationconfig=cp.parseConfiguration(configFile);
DefaultShellCallbackcallback=newDefaultShellCallback(overwrite);
MyBatisGeneratormyBatisGenerator=newMyBatisGenerator(config, callback, warnings);
myBatisGenerator.generate(null);
    }
publicstaticvoidmain(String[] args) {
try {
GeneratoerMybatisgeneratoerMybatis=newGeneratoerMybatis();
generatoerMybatis.generator();
System.out.println("生成完毕!");
        }catch (Exceptione){
e.printStackTrace();
        }
    }
}


五、启动main方法测试

结果:

image.png

       可以看到已经成功根据user表,在配置文件里指定的目录下,分别生成了Mapper及配置文件:

image.png


总结:

       逆向工程-Mybatis Generator的搭建与使用。


END

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6月前
|
XML Java 数据库连接
mybatis-plus逆向工程详解
mybatis-plus逆向工程详解
391 0
|
18天前
|
SQL 缓存 Java
【详细实用のMyBatis教程】获取参数值和结果的各种情况、自定义映射、动态SQL、多级缓存、逆向工程、分页插件
本文详细介绍了MyBatis的各种常见用法MyBatis多级缓存、逆向工程、分页插件 包括获取参数值和结果的各种情况、自定义映射resultMap、动态SQL
【详细实用のMyBatis教程】获取参数值和结果的各种情况、自定义映射、动态SQL、多级缓存、逆向工程、分页插件
|
1月前
|
Java 数据库连接 Maven
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和MyBatis Generator,使用逆向工程来自动生成Java代码,包括实体类、Mapper文件和Example文件,以提高开发效率。
116 2
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。
|
6月前
|
Java 数据库连接 数据库
Mybatis逆向工程笔记小结
Mybatis逆向工程笔记小结
|
5月前
|
SQL 缓存 Java
Java框架之MyBatis 07-动态SQL-缓存机制-逆向工程-分页插件
Java框架之MyBatis 07-动态SQL-缓存机制-逆向工程-分页插件
|
6月前
|
XML Java 数据库连接
Mybatis逆向工程的2种方法,一键高效快速生成Pojo、Mapper、XML,摆脱大量重复开发
【5月更文挑战第10天】Mybatis逆向工程的2种方法,一键高效快速生成Pojo、Mapper、XML,摆脱大量重复开发
80 6
|
6月前
|
数据库
Springboot+mybatis-plus逆向工程生成代码器
Springboot+mybatis-plus逆向工程生成代码器
|
6月前
|
SQL Java 数据库连接
MyBatis之逆向工程
【1月更文挑战第4天】 正向工程:先创建Java实体类,由框架负责根据实体类生成数据库表。Hibernate是支持正向工程的 逆向工程:先创建数据库表,由框架负责根据数据库表,反向生成如下资源: Java实体类 Mapper接口 Mapper映射文件
62 2
|
6月前
|
Java 数据库连接 Maven
MyBatis逆向工程可以生成哪些内容?
MyBatis逆向工程可以生成哪些内容?
41 0
|
6月前
|
SQL Java 数据库连接
MyBatis的逆向工程
MyBatis的逆向工程