Mybatis逆向工程:根据创建好的数据库表,生成对应的实体类、DAO、映射文件
开发环境
- 开发工具:IntelliJ IDEA 2021.3.3 (Ultimate Edition)
- SpringBoot版本:2.5.12
- mysql驱动依赖版本:5.1.47
- mybatis逆向工程插件版本:1.3.5
- 通用mapper依赖版本:4.1.5
- JDK版本:1.8
1.新建SpringBoot应用
2.添加逆向工程插件依赖
- 添加Mybatis的maven插件,引入其他两个所需的依赖
<!-- 添加mybatis逆向工程插件 -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
<configuration>
<!-- 获取配置文件路径 -->
<configurationFile>${basedir}/src/main/resources/generatorConfig.xml</configurationFile>
<!-- 当生成的类已经存在时,是否覆盖 -->
<overwrite>true</overwrite>
</configuration>
<!-- 添加mybatis逆向工程所需的依赖 -->
<dependencies>
<!-- 添加通用mysql驱动依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<!-- 添加通用Mapper依赖 -->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>4.1.5</version>
</dependency>
</dependencies>
</plugin>
-
逆向工程配置文件
- 在SpringBoot项目的
src/main/resources
文件夹下新建generatorConfig.xml
配置文件(路径可改)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <context id="DB2Tables" targetRuntime="MyBatis3Simple" defaultModelType="flat"> <!-- 通用 Mapper 继承的接口 --> <plugin type="tk.mybatis.mapper.generator.MapperPlugin"> <property name="mappers" value="tk.mybatis.mapper.common.Mapper"/> </plugin> <commentGenerator> <!-- 不生成时间戳 --> <property name="suppressDate" value="true"/> <!-- 生成注解 --> <property name="suppressAllComments" value="false"/> <!-- 注解采用数据库的标注,suppressAllComments 必须设置为 false 才会生效 --> <property name="addRemarkComments" value="true"/> </commentGenerator> <!-- 数据库连接信息 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/数据库名称?characterEncoding=utf8" userId="数据库用户名" password="数据库密码"> <!-- oracle 获取数据库注解的方式,想要获取数据库注解必须添加 --> <!-- <property name="remarksReporting" value="true"/> --> <!-- mysql 获取数据库注解的方式,想要获取数据库注解必须添加 --> <property name="useInformationSchema" value="true"/> <!-- 其它类型数据库暂不支持 --> </jdbcConnection> <!-- 生成实体类位置 --> <javaModelGenerator targetPackage="com.example.tkmapper.demo.entity" targetProject="src/main/java"> <property name="enableSubPackages" value="true"/> <property name="trimStrings" value="true"/> </javaModelGenerator> <!-- 生成的 xml 映射文件位置 --> <sqlMapGenerator targetPackage="/" targetProject="src/main/resources/mapper"> <property name="enableSubPackages" value="true"/> </sqlMapGenerator> <!-- 生成 mapper 接口的位置 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.tkmapper.demo.dao" targetProject="src/main/java"> <property name="enableSubPackages" value="true"/> </javaClientGenerator> <!-- 数据表 和 JAVA 实体的映射,tableName 表名,domainObjectName 实体名 --> <table tableName="users" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> </table> <!-- 如果想要一次性生成所有表,可以把 tableName 配置为 %,一般不推荐这么干,开发项目的时候最好是要用到哪些表,才去生成 --> <!-- <table tableName="%"/> --> </context> </generatorConfiguration>
- 在SpringBoot项目的