mybatis逆向工程(MyBatis Generator)

mybatis逆向工程(MyBatis Generator)

1. 什麼是mybatis逆向工程

mybatis官方爲了提升開發效率,提升自動對單表生成sql,包括 :mapper.xml、mapper.java、表名.java(po類)html

在企業開發中一般是在設計階段對錶進行設計 、建立。java

在開發階段根據表結構建立對應的po類。mysql

mybatis逆向工程的方向:由數據庫表----》java代碼sql

2. 逆向工程建立(方式一)

2.1 逆向工程使用配置

本實例使用經過java程序運行逆向工程;數據庫

逆向工程運行所須要的jar包:api

 

2.2. generator.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 <generatorConfiguration>
 6    <!-- 一、鏈接數據庫的驅動包路徑 -->
 7     <classPathEntry location="D:\WorkspaceJ2eeMyeclipse\generator\WebRoot\WEB-INF\lib\mysql-connector-java-5.1.44-bin.jar" /> 
 8 
 9   <context id="DB2Tables" targetRuntime="MyBatis3">
10     <!-- 一、鏈接數據庫的地址和驅動:數據庫連接URL、用戶名、密碼 -->
11     <jdbcConnection driverClass="com.mysql.jdbc.Driver"
12         connectionURL="jdbc:mysql://localhost:3306/elec"
13         userId="root"
14         password="123456">
15     </jdbcConnection>
16 
17     <javaTypeResolver >
18       <property name="forceBigDecimals" value="false" />
19     </javaTypeResolver>
20     
21     <!-- 生成模型的包名和位置 --> 
22     <javaModelGenerator targetPackage="com.mmzs.pojo" targetProject="generator">
23       <property name="enableSubPackages" value="true" />
24       <property name="trimStrings" value="true" />
25     </javaModelGenerator>
26     
27      <!-- 生成的映射文件包名和位置 -->
28     <sqlMapGenerator targetPackage="com.mmzs.mapper"  targetProject="generator">
29       <property name="enableSubPackages" value="true" />
30     </sqlMapGenerator>
31     
32      <!-- 生成DAO的包名和位置 --> 
33     <javaClientGenerator type="XMLMAPPER" targetPackage="com.mmzs.mapper"  targetProject="generator">
34       <property name="enableSubPackages" value="true" />
35     </javaClientGenerator>
36     
37     <!-- 要生成那些表(更改tableName和domainObjectName就能夠) --> 
38     <table  tableName="testkeycount" domainObjectName="KeyCountbean" 
39        enableCountByExample="false" enableUpdateByExample="false"
40                enableDeleteByExample="false" enableSelectByExample="false"
41                selectByExampleQueryId="false">
42     </table>
43  
44      <table  tableName="testnum" domainObjectName="Numbean" 
45        enableCountByExample="false" enableUpdateByExample="false"
46                enableDeleteByExample="false" enableSelectByExample="false"
47                selectByExampleQueryId="false">
48     </table>
49     <!--  <table tableName="t_student" domainObjectName="StuBean"/> -->
50 
51   </context>
52 </generatorConfiguration>
generator.xml

 目前工程結構以下:mybatis

2.3 運行

而後右擊generator.xml文件===>>單擊"Generator MyBatis/iBATIS Artifacts"按鈕,此時就自動生成成功了;app

效果以下:dom

代碼已上傳,或者加右側java的QQ羣下載eclipse

3. 逆向工程建立(方式二)

3.1 逆向工程使用配置

本實例使用經過java程序運行逆向工程;

逆向工程運行所須要的jar包:

3.2 配置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="false" />
11         </commentGenerator>
12         
13         <!--數據庫鏈接的信息:驅動類、鏈接地址、用戶名、密碼 -->
14         <jdbcConnection driverClass="com.mysql.jdbc.Driver"
15             connectionURL="jdbc:mysql://localhost:3306/elec" 
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.mmzs.pojo"
28             targetProject=".\src">
29             <!-- enableSubPackages:是否讓schema做爲包的後綴 -->
30             <property name="enableSubPackages" value="false" />
31             <!-- 從數據庫返回的值被清理先後的空格 -->
32             <property name="trimStrings" value="true" />
33         </javaModelGenerator>
34         
35         <!-- targetProject:mapper映射文件生成的位置 -->
36         <sqlMapGenerator targetPackage="com.mmzs.mapper" 
37             targetProject=".\src">
38             <!-- enableSubPackages:是否讓schema做爲包的後綴 -->
39             <property name="enableSubPackages" value="false" />
40         </sqlMapGenerator>
41         
42         <!-- targetPackage:mapper接口生成的位置 -->
43         <javaClientGenerator type="XMLMAPPER"
44             targetPackage="com.mmzs.mapper" 
45             targetProject=".\src">
46             <!-- enableSubPackages:是否讓schema做爲包的後綴 -->
47             <property name="enableSubPackages" value="false" />
48         </javaClientGenerator>
49         
50         <!-- 指定數據庫表 -->
51         <table schema="" tableName="testnum"></table>
52         <table schema="" tableName="testkeycount"></table>
53         <table schema="" tableName="user"></table>
54 
55     </context>
56 </generatorConfiguration>
generatorConfig.xml

3.3 配置須要執行的java程序

 1 package com.mmzs.generator;
 2 
 3 
 4 import java.io.File;
 5 import java.io.IOException;
 6 import java.util.ArrayList;
 7 import java.util.List;
 8 
 9 import org.mybatis.generator.api.MyBatisGenerator;
10 import org.mybatis.generator.config.Configuration;
11 import org.mybatis.generator.config.xml.ConfigurationParser;
12 import org.mybatis.generator.exception.XMLParserException;
13 import org.mybatis.generator.internal.DefaultShellCallback;
14 
15 public class Generator {
16 
17     public static void main(String[] args) throws Exception {
18         try {
19             Generator generatorSqlmap = new Generator();
20             generatorSqlmap.generator();
21             System.out.println("逆向工程自動建立完成");
22         } catch (Exception e) {
23             e.printStackTrace();
24         }
25     }
26     
27     
28     //調用generatorConfig.xml文件,根據其配置自動生成
29     public void generator() throws Exception{
30         List<String> warnings = new ArrayList<String>();
31         boolean overwrite = true;
32         //指定 逆向工程配置文件
33         File configFile = new File("generatorConfig.xml"); 
34         ConfigurationParser cp = new ConfigurationParser(warnings);
35         Configuration config = cp.parseConfiguration(configFile);
36         DefaultShellCallback callback = new DefaultShellCallback(overwrite);
37         MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,
38                 callback, warnings);
39         myBatisGenerator.generate(null);
40     } 
41 
42 }
Generator.java

3.4 運行

執行Generator.java程序後,所生成的代碼已經生成到當前工程中;

效果以下:(顯示可能有延遲,須要刷新工程才能看到生成的結果)

代碼已上傳,或者加右側java的QQ羣下載

 

相關連接:玩轉SpringBoot之MyBatisplus自動化構建工具

相關文章
相關標籤/搜索