天天看點

Mybatis逆向工程生成代碼mybatis逆向工程生成代碼1 什麼是逆向工程

mybatis逆向工程生成代碼

1 什麼是逆向工程

mybaits需要程式員自己編寫sql語句,mybatis官方提供逆向工程 可以針對單表自動生成mybatis執行所需要的代碼(mapper.java,mapper.xml、po..)

由資料庫的表生成java代碼。

2 下載下傳逆向工程中需要的jar

mybatis-generator-core-1.3.2.jar

當然還需要一些其他的jar,比如連接配接mysql的jar

mysql-connector-java-5.1.28-bin.jar

3 使用方法

以下介紹兩種方法

3.1 通過java project運作逆向工程  

使用java程式方式,不依賴開發工具。

步驟1:添加生成代碼配置檔案 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="testTables" targetRuntime="MyBatis3">  
    <commentGenerator>  
        <!-- 是否去除自動生成的注釋 true:是 : false:否 -->  
        <property name="suppressAllComments" value="true" />  
    </commentGenerator>  
    <!--資料庫連接配接的資訊:驅動類、連接配接位址、使用者名、密碼 -->  
    <jdbcConnection driverClass="com.mysql.jdbc.Driver"  
           connectionURL="jdbc:mysql://192.168.1.78:3306/fdd_yun" userId="admin" password="Admin_12345">  
    </jdbcConnection>  
    <!-- <jdbcConnection driverClass="oracle.jdbc.OracleDriver"  
    connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:yycg" userId="yycg"  password="yycg">  
    </jdbcConnection> -->  
    <!-- 預設false,把JDBC DECIMAL 和 NUMERIC 類型解析為 Integer,為 true時把JDBC DECIMAL 和  
    NUMERIC 類型解析為java.math.BigDecimal -->  
    <javaTypeResolver>  
        <property name="forceBigDecimals" value="false" />  
    </javaTypeResolver>  
  
    <!-- targetProject:生成PO類的位置 -->  
    <javaModelGenerator targetPackage="com.fdd.newhouse.po"  
    targetProject=".\src">  
        <!-- enableSubPackages:是否讓schema作為包的字尾 -->  
        <property name="enableSubPackages" value="false" />  
        <!-- 從資料庫傳回的值被清理前後的空格 -->  
        <property name="trimStrings" value="true" />  
    </javaModelGenerator>  
  
     <!-- targetProject:mapper映射檔案生成的位置 -->  
    <sqlMapGenerator targetPackage="com.fdd.newhouse.mapper"  
    targetProject=".\src">  
        <!-- enableSubPackages:是否讓schema作為包的字尾 -->  
        <property name="enableSubPackages" value="false" />  
    </sqlMapGenerator>  
  
    <!-- targetPackage:mapper接口生成的位置 -->  
    <javaClientGenerator type="XMLMAPPER" targetPackage="com.fdd.newhouse.mapper"  
    targetProject=".\src">  
        <!-- enableSubPackages:是否讓schema作為包的字尾 -->  
        <property name="enableSubPackages" value="false" />  
    </javaClientGenerator>  
    <!-- 指定資料庫表 -->  
    <table tableName="yun_customer"></table>  
    <table tableName="yun_guide_record"></table>  
    </context>  
</generatorConfiguration>
           

需要修改的為生成po,mapper的包路徑,需要指定的資料庫表

步驟2:編寫運作方法 run

import java.io.File;  
import java.util.ArrayList;  
import java.util.List;  
  
import org.mybatis.generator.api.MyBatisGenerator;  
import org.mybatis.generator.config.Configuration;  
import org.mybatis.generator.config.xml.ConfigurationParser;  
import org.mybatis.generator.internal.DefaultShellCallback;  
  
public class Start {  
  
    public static void main(String[] args) throws Exception{  
  
        List<String> warnings = new ArrayList<String>();  
        boolean overwrite = true;  
        File configFile = new File("generatorConfig.xml");  
        ConfigurationParser cp = new ConfigurationParser(warnings);  
        Configuration config = cp.parseConfiguration(configFile);  
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);  
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);  
        myBatisGenerator.generate(null);  
    }  
}
           

步驟3:執行main方法,生成的代碼如下

Mybatis逆向工程生成代碼mybatis逆向工程生成代碼1 什麼是逆向工程

 步驟4:拷貝

需要将生成工程中所生成的代碼拷貝到自己的工程中。

3.2通過maven方式運作 步驟1:在pom中添加

<plugin>  
           <groupId>org.mybatis.generator</groupId>  
           <artifactId>mybatis-generator-maven-plugin</artifactId>  
         <version>1.3.2</version>  
         <dependencies>  
            <dependency>  
                 <groupId>mysql</groupId>  
                 <artifactId>mysql-connector-java</artifactId>  
                 <version>5.1.30</version>  
            </dependency>  
         </dependencies>  
       </plugin>
           

步驟二:添加生成代碼配置檔案 generatorConfig.xml放到src/main/resource下

<?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>  
<!--     <classPathEntry location="classpath:mysql-connector-java-5.1.30.jar" /> 
 -->    <context id="testTables" targetRuntime="MyBatis3">  
    <commentGenerator>  
        <!-- 是否去除自動生成的注釋 true:是 : false:否 -->  
        <property name="suppressAllComments" value="true" />  
    </commentGenerator>  
    <!--資料庫連接配接的資訊:驅動類、連接配接位址、使用者名、密碼 -->  
    <jdbcConnection driverClass="com.mysql.jdbc.Driver"  
           connectionURL="jdbc:mysql://192.168.1.78:3306/fdd_yun" userId="admin" password="Admin_12345">  
    </jdbcConnection>  
    <!-- <jdbcConnection driverClass="oracle.jdbc.OracleDriver"  
    connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:yycg" userId="yycg"  password="yycg">  
    </jdbcConnection> -->  
    <!-- 預設false,把JDBC DECIMAL 和 NUMERIC 類型解析為 Integer,為 true時把JDBC DECIMAL 和  
    NUMERIC 類型解析為java.math.BigDecimal -->  
    <javaTypeResolver>  
        <property name="forceBigDecimals" value="false" />  
    </javaTypeResolver>  
    <!-- targetProject:生成PO類的位置 -->  
    <javaModelGenerator targetPackage="com.fdd.newhouse.po"  
    targetProject=".\src\main\java">  
        <!-- enableSubPackages:是否讓schema作為包的字尾 -->  
        <property name="enableSubPackages" value="false" />  
        <!-- 從資料庫傳回的值被清理前後的空格 -->  
        <property name="trimStrings" value="true" />  
    </javaModelGenerator>  
     <!-- targetProject:mapper映射檔案生成的位置 -->  
    <sqlMapGenerator targetPackage="com.fdd.newhouse.mapper"  
    targetProject=".\src\main\java">  
        <!-- enableSubPackages:是否讓schema作為包的字尾 -->  
        <property name="enableSubPackages" value="false" />  
    </sqlMapGenerator>  
    <!-- targetPackage:mapper接口生成的位置 -->  
    <javaClientGenerator type="XMLMAPPER" targetPackage="com.fdd.newhouse.mapper"  
    targetProject=".\src\main\java">  
        <!-- enableSubPackages:是否讓schema作為包的字尾 -->  
        <property name="enableSubPackages" value="false" />  
    </javaClientGenerator>  
    <!-- 指定資料庫表 -->  
    <table tableName="yun_customer"></table>  
    <table tableName="yun_guide_record"></table>  
    </context>  
</generatorConfiguration>
           

步驟3..執行maven指令 mvn mybatis-generator:generate 覆寫之前寫的檔案,則如下: mvn -Dmybatis.generator.overwrite=true mybatis-generator:generate   轉載位址:https://www.cnblogs.com/shunyang/p/4864449.html

繼續閱讀