您的位置:首页 > 编程语言

Mybatis 逆向工程 自动生成代码

2018-02-06 16:02 363 查看
Mybatis 可以通过一定的代码,自动生成包括mapper.xml、mapper.java、po等文件;

一、环境准备:

用到的JAR包如下:



文件只有两个:GenMain.java和generatorConfig.xml文件,都放在src目录下。

二、实现方法

1、新建一个JAVA项目,

GenMain.java(主文件)

1 import java.io.File;
2 import java.io.IOException;
3 import java.sql.SQLException;
4 import java.util.ArrayList;
5 import java.util.List;
6
7 import org.mybatis.generator.api.MyBatisGenerator;
8 import org.mybatis.generator.config.Configuration;
9 import org.mybatis.generator.config.xml.ConfigurationParser;
10 import org.mybatis.generator.exception.InvalidConfigurationException;
11 import org.mybatis.generator.exception.XMLParserException;
12 import org.mybatis.generator.internal.DefaultShellCallback;
13
14 public class GenMain {
15     public static void main(String[] args) {
16         List<String> warnings = new ArrayList<String>();
17         boolean overwrite = true;
18         String genCfg = "generatorConfig.xml";
19         File configFile = new File(GenMain.class.getResource(genCfg).getFile());
20         ConfigurationParser cp = new ConfigurationParser(warnings);
21         Configuration config = null;
22         try {
23             config = cp.parseConfiguration(configFile);
24         } catch (IOException e) {
25             e.printStackTrace();
26         } catch (XMLParserException e) {
27             e.printStackTrace();
28         }
29         DefaultShellCallback callback = new DefaultShellCallback(overwrite);
30         MyBatisGenerator myBatisGenerator = null;
31         try {
32             myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
33         } catch (InvalidConfigurationException e) {
34             e.printStackTrace();
35         }
36         try {
37             myBatisGenerator.generate(null);
38         } catch (SQLException e) {
39             e.printStackTrace();
40         } catch (IOException e) {
41             e.printStackTrace();
42         } catch (InterruptedException e) {
43             e.printStackTrace();
44         }
45     }
46 }


配置文件:generatorConfig.xml

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


数据库基本配置和生成文件的目录,都在上述文件中配置;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: