越努力,越幸运

朱季谦

腾讯云社区2022年度最佳作者、阿里云专家博主认证

如何优雅地使用Mybatis逆向工程生成类

文/朱季谦

1.环境:SpringBoot

2.在pom.xml文件里引入相关依赖:

 1 <plugin>
 2    <groupId>org.mybatis.generator</groupId>
 3    <artifactId>mybatis-generator-maven-plugin</artifactId>
 4    <version>1.3.6</version>
 5    <configuration>
 6       <verbose>true</verbose>
 7       <overwrite>true</overwrite>
 8    </configuration>
 9    <dependencies>
10       <dependency>
11          <groupId>mysql</groupId>
12          <artifactId>mysql-connector-java</artifactId>
13          <version>5.1.36</version>
14       </dependency>
15    </dependencies>
16 
17 </plugin>
18 
19 
20 
21 <dependency>
22    <groupId>org.mybatis.generator</groupId>
23    <artifactId>mybatis-generator-core</artifactId>
24    <version>1.3.6</version>
25 </dependency>

3.创建generatorConfig.xml文件

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 
 3 <!DOCTYPE generatorConfiguration
 4         PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
 5         "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
 6 
 7 <generatorConfiguration>
 8     <context id="testTables" targetRuntime="MyBatis3">
 9         <commentGenerator>
10             <!-- 是否去除自动生成的注释 true:是 : false:否 -->
11             <property name="suppressAllComments" value="true" />
12         </commentGenerator>
13         <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
14         <jdbcConnection driverClass="com.mysql.jdbc.Driver"
15                         connectionURL="jdbc:mysql://127.0.0.1:3306/example?useUnicode=true&amp;characterEncoding=utf8"
16                         userId="root"
17                         password="123456">
18         </jdbcConnection>
19 
20         <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL
21             和 NUMERIC 类型解析为java.math.BigDecimal -->
22         <javaTypeResolver>
23             <property name="forceBigDecimals" value="false" />
24         </javaTypeResolver>
25 
26         <!-- targetProject:生成PO类的位置 -->
27         <javaModelGenerator targetPackage="com.zhu.text.domain"
28                             targetProject=".\src\main\java">
29             <!-- enableSubPackages:是否让schema作为包的后缀 -->
30             <property name="enableSubPackages" value="false" />
31             <!-- 从数据库返回的值被清理前后的空格 -->
32             <property name="trimStrings" value="true" />
33         </javaModelGenerator>
34         <!-- targetProject:mapper映射文件生成的位置 -->
35         <sqlMapGenerator targetPackage="com.zhu.text.dao"
36                          targetProject=".\src\main\java">
37             <!-- enableSubPackages:是否让schema作为包的后缀 -->
38             <property name="enableSubPackages" value="false" />
39         </sqlMapGenerator>
40         <!-- targetPackage:mapper接口生成的位置 -->
41         <javaClientGenerator type="XMLMAPPER"
42                              targetPackage="com.zhu.text.dao" targetProject=".\src\main\java">
43             <!-- enableSubPackages:是否让schema作为包的后缀 -->
44             <property name="enableSubPackages" value="false" />
45         </javaClientGenerator>
46         <!-- 指定数据库表 -->
47         <table tableName="text_product" domainObjectName="Product"></table>
48     </context>
49 </generatorConfiguration>

4.创建main类

 1 import java.io.File;
 2 import java.util.ArrayList;
 3 import java.util.List;
 4 import org.mybatis.generator.api.MyBatisGenerator;
 5 import org.mybatis.generator.config.Configuration;
 6 import org.mybatis.generator.config.xml.ConfigurationParser;
 7 import org.mybatis.generator.internal.DefaultShellCallback;
 8 
 9 public class MBGenerator {
10     public static void main(String[] args) throws Exception{
11 
12         List<String> warnings = new ArrayList<String>();
13         boolean overwrite = true;
14         File configFile = new File("例:generatorConfig.xml的存放路径");
15         ConfigurationParser cp = new ConfigurationParser(warnings);
16         Configuration config = cp.parseConfiguration(configFile);
17         DefaultShellCallback callback = new DefaultShellCallback(overwrite);
18         MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
19         myBatisGenerator.generate(null);
20     }
21 }

 

5.执行maven方法里的mybatis-generator:generate

clipboard

完成以上步骤,就可以自定生成需要的xml文件与类以及对应的java bean类。

posted @ 2020-06-05 15:24  朱季谦  阅读(622)  评论(0编辑  收藏  举报