使用springboot集成mybatis-generator,连接mysql或是postgresql数据库
实现根据数据表,逆向生成domain实体类、mapper接口类、mapper.xml文件的代码生成效果
对于简单的CRUD代码,mybatis-generator为我们节省了大量的时间
springboot 版本2.5.14
一、文件结构
1.pom.xml
mybatis-generator插件中需要写明xml配置文件的位置
<project>
<dependencies>
<!-- mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- postgresql驱动包 -->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.2.25</version>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<!-- mybatis generator -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<configurationFile>
<!-- mybatis-generator配置文件的位置 -->
src/main/resources/mybatis-generator-config.xml
</configurationFile>
<overwrite>true</overwrite>
<verbose>true</verbose>
</configuration>
</plugin>
</plugins>
</build>
</project>
2.mybatis-generator-config.xml
xml配置文件需要写明生成的三个文件的位置
这里使用postgresql数据库举例,使用mysql数据库同理
<?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>
<!-- 本地mysql-connector-java的位置 -->
<!-- <classPathEntry location="D:\environment\maven\maven-repo\mysql\mysql-connector-java\8.0.29\mysql-connector-java-8.0.29.jar"/> -->
<!-- 本地org.postgresql.Driver的位置 -->
<classPathEntry location="D:\environment\maven\maven-repo\org\postgresql\postgresql\42.2.25\postgresql-42.2.25.jar"/>
<context id="context" targetRuntime="MyBatis3">
<!--定义生成的java类的编码格式-->
<property name="javaFileEncoding" value="UTF-8"/>
<commentGenerator>
<property name="suppressAllComments" value="true"/>
<property name="suppressDate" value="true"/>
</commentGenerator>
<!-- 数据库的相关配置 ,输入自己的数据库,端口,账户,密码-->
<!--
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/database"
userId="mysql"
password="password">
</jdbcConnection>
-->
<jdbcConnection driverClass="org.postgresql.Driver"
connectionURL="jdbc:postgresql://localhost:5432/database"
userId="postgres"
password="password">
</jdbcConnection>
<!-- 处理NUMERIC和DECIMAL类型的策略 -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- Domain实体类的生成位置-->
<javaModelGenerator targetPackage="com.tongls.domain"
targetProject="src\main\java">
<!-- 是否使用子包 -->
<property name="enableSubPackages" value="false"/>
<!-- 去掉字符串前后空格 -->
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- Mapper.xml 文件的生成位置 -->
<sqlMapGenerator targetPackage="mybatis.mapper"
targetProject="src\main\resources">
<property name="enableSubPackages" value="false"/>
</sqlMapGenerator>
<!-- Mapper 接口文件的生成位置 -->
<javaClientGenerator targetPackage="com.tongls.mapper"
targetProject="src\main\java"
type="XMLMAPPER">
<property name="enableSubPackages" value="false"/>
</javaClientGenerator>
<!-- 数据库中的哪张数据表进行generator
tableName:数据库中的表名称 domainObjectName:生成实体类的名称-->
<table tableName="sys_user"
domainObjectName="SysUser"
enableCountByExample="false"
enableDeleteByExample="false"
enableSelectByExample="false"
enableUpdateByExample="false"/>
</context>
</generatorConfiguration>
二、运行
右侧Maven侧边栏,找到并运行插件,即可生成对应的dao层代码
三、成果
在左侧Project侧边栏,可以看到在指定的文件位置,由数据表sys_user生成了三个文件。分别是SysUser实体类、SysUserMapper接口文件和SysUserMapper.xml文件。
觉得本篇对您有帮助的,请留下一个大大的👍🏼赞,这对我真的很重要!