使用Spring Boot和Mybatis进行反向工程是一个非常方便的方法,通过几个简单的步骤可以自动生成数据库操作的代码,这里我详细讲解一下具体的步骤。
1. 引入依赖
首先,需要在Maven或Gradle中添加对Spring Boot和Mybatis的依赖。例如,在Maven中可以如下添加:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.4.4</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
<version>2.4.4</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
...
</dependencies>
2. 配置数据库连接
其次,需要在application.properties或application.yml中配置数据库连接。例如,在properties中的配置如下:
spring.datasource.url=jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
3. 配置反向工程
接着,需要在配置文件中添加Mybatis Generator的配置。这里我们选择使用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="demo" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<jdbcConnection driverClass="${spring.datasource.driver-class-name}"
connectionURL="${spring.datasource.url}"
userId="${spring.datasource.username}"
password="${spring.datasource.password}">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<javaModelGenerator targetPackage="com.example.demo.entity" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<javaClientGenerator type="XMLMAPPER" targetPackage="com.example.demo.mapper" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<table schema="" tableName="demo" domainObjectName="DemoEntity">
</table>
</context>
</generatorConfiguration>
其中,jdbcConnection
节点中的配置需要使用上面在application.properties
中配置的数据源信息。javaModelGenerator
节点中的targetPackage
和targetProject
分别指定生成的model类的包名和存放位置。sqlMapGenerator
节点中的targetPackage
和targetProject
描述了xml映射文件的包名和存放位置。javaClientGenerator
节点中的type
表示使用XML mapper方式生成mapper接口。
4. 运行反向工程
最后,使用如下命令运行反向工程插件即可自动生成代码:
mvn mybatis-generator:generate
这个操作会根据配置文件信息自动生成mapper接口、实体类和xml映射文件。
示例一:
假设我们已经创建好了demo
数据库,里面有一张表users
,它包含3个字段:id
、username
和password
。现在我们要使用Mybatis Generator自动生成该表的mapper接口和实体类文件。
- 创建Maven项目并添加上述依赖和配置。
- 将如下配置存储为
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="demo" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<jdbcConnection driverClass="${spring.datasource.driver-class-name}"
connectionURL="${spring.datasource.url}"
userId="${spring.datasource.username}"
password="${spring.datasource.password}">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<javaModelGenerator targetPackage="com.example.demo.entity" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<sqlMapGenerator targetPackage="com.example.demo.mapper" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<javaClientGenerator type="XMLMAPPER" targetPackage="com.example.demo.mapper" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<table schema="" tableName="users" domainObjectName="User">
</table>
</context>
</generatorConfiguration>
- 在终端中执行
mvn mybatis-generator:generate
,生成后查看src/main/java/com/example/demo/mapper
路径下的UserMapper.java文件和src/main/java/com/example/demo/entity
路径下的User.java文件,这两个文件就是Mybatis Generator自动生成的文件。
示例二:
假设我们现在要使用Mybatis Generator自动生成MySQL数据库test
中的所有表的mapper接口和实体类文件。
- 创建Maven项目并添加上述依赖和配置。
- 将如下配置存储为
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">
<!-- 配置 Mybatis Generator 使用 START -->
<generatorConfiguration>
<context id="mysql" targetRuntime="MyBatis3">
<!-- 数据库链接配置 -->
<jdbcConnection driverClass="${spring.datasource.driver-class-name}"
connectionURL="${spring.datasource.url}"
userId="${spring.datasource.username}"
password="${spring.datasource.password}"
/>
<!-- 配置注释生成器 -->
<commentGenerator>
<property name="suppressDate" value="true" />
<property name="suppressAllComments" value="true" />
<property name="addRemarkComments" value="true" />
</commentGenerator>
<!-- 定义 Java 类型解析器 -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- 配置 Model 类型生成器 -->
<javaModelGenerator targetPackage="com.example.entity" targetProject="src/main/java">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
<!--
开启 builder 模式,生成实体类的带 builder 的构造方法,
使用 @Builder 注解生成的类,规范了 JavaBean 的写法
-->
<property name="builder" value="true"/>
</javaModelGenerator>
<!-- 配置 Mapper.xml 文件生成器 -->
<sqlMapGenerator targetPackage="com.example.mapper" targetProject="src/main/resources">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!-- 配置 Mapper 接口文件生成器 -->
<javaClientGenerator targetPackage="com.example.mapper" targetProject="src/main/java" type="XMLMAPPER">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!-- 配置生成哪些表的代码 -->
<table tableName="tb_one" domainObjectName="TbOne"
mapperName="TbOneMapper"
enableCountByExample="true"
enableUpdateByExample="true"
enableDeleteByExample="true"
enableSelectByExample="true"
selectByExampleQueryId="true"
/>
<table tableName="tb_two" domainObjectName="TbTwo"
mapperName="TbTwoMapper"
enableCountByExample="true"
enableUpdateByExample="true"
enableDeleteByExample="true"
enableSelectByExample="true"
selectByExampleQueryId="true"
/>
</context>
</generatorConfiguration>
<!-- 配置 Mybatis Generator 使用 END -->
- 在终端中执行
mvn mybatis-generator:generate
,生成后查看src/main/java/com/example/mapper
路径下的所有mapper接口文件和src/main/java/com/example/entity
路径下的所有实体类文件,这些文件就是Mybatis Generator自动生成的文件。
以上就是使用Spring Boot和Mybatis进行反向工程的详细步骤,希望可以对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用Spring Boot Mybatis 搞反向工程的步骤 - Python技术站