1. 程式人生 > >MyBatis Generator工具使用(自動生成實體類、SQL定義檔案、Mapper介面)

MyBatis Generator工具使用(自動生成實體類、SQL定義檔案、Mapper介面)

建立一個ovls-generator工程

核心是MyBatis Generator(它可以生成POJO(實體類)和sql.xml及sql方法和mapper(DAO介面))
一.導包

mysql-connector-java
mybatis
mybatis-generator-core

程式碼:

 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
          <modelVersion>4.0.0</modelVersion>
          <groupId>cn.xdl</groupId>
          <artifactId>ovls-generator</artifactId>
          <version>0.0.1-SNAPSHOT</version>
          <dependencies>
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>3.4.6</version>
            </dependency>
            <dependency>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-core</artifactId>
                <version>1.3.5</version>

            </dependency>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.46</version>
            </dependency>
          </dependencies>
        </project>

二.新增工具mybatis-generator配置檔案mbg.xml在根目錄下

配置檔案內容在這個網站複製
http://www.mybatis.org/generator/configreference/xmlconfig.html
可以根據現有資料庫表生成實體類、SQL定義檔案、Mapper介面。
修改配置內容(自己的驅動包,自己的連線引數)

driverClass="com.mysql.jdbc.Driver"
jdbc:mysql://localhost:3306/庫名

targetPackage="實體類存放的位置"

targetProject="實體類存放的專案目錄">

程式碼

<?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>
<!-- 指定驅動包 ,複製mysql-connector-java-5.1.46.jar路徑過來-->
  <classPathEntry location="C:\Users\Administrator\.m2\repository\mysql\mysql-connector-java\5.1.46\mysql-connector-java-5.1.46.jar" />

  <context id="DB2Tables" targetRuntime="MyBatis3">
    <!-- 指定連線引數 -->
    <!-- jdbc:mysql://localhost:3306/庫名 -->
    <jdbcConnection driverClass="com.mysql.jdbc.Driver"
        connectionURL="jdbc:mysql://localhost:3306/ovls"
        userId="root"
        password="root">
    </jdbcConnection>

    <javaTypeResolver >
      <property name="forceBigDecimals" value="false" />
    </javaTypeResolver>

    <!-- 指定entity實體類位置 -->
    <!-- targetPackage="實體類存放的位置" 
    targetProject="實體類存放的專案目錄"> -->
    <javaModelGenerator targetPackage="cn.xdl.ovls.entity" targetProject=".\src\main\java">
      <property name="enableSubPackages" value="true" />
      <property name="trimStrings" value="true" />
    </javaModelGenerator>

    <!-- 指定sql xml位置 -->
    <sqlMapGenerator targetPackage="sql"  targetProject=".\src\main\resources">
      <property name="enableSubPackages" value="true" />
    </sqlMapGenerator>

    <!-- 指定Mapper介面位置 -->
    <javaClientGenerator type="XMLMAPPER" targetPackage="cn.xdl.ovls.dao"  targetProject=".\src\main\java">
      <property name="enableSubPackages" value="true" />
    </javaClientGenerator>

    <!-- 指定根據資料哪些表生成上面元素 -->
    <table  tableName="%" enableCountByExample="false" 
		        enableDeleteByExample="false" enableSelectByExample="false"
		        enableUpdateByExample="false">
		    </table>

  </context>
</generatorConfiguration>

三.載入配置檔案執行生成

配置檔案內容在這個網站複製
http://www.mybatis.org/generator/running/runningWithJava.html
建立一個RunMyBitisGenerator類複製裡面程式碼
執行 快捷鍵Alt+Shift+X,J
自動生成實體類、SQL定義檔案、Mapper介面
程式碼

public class RunMyBatisGenerator {

    public static void main(String[] args) throws Exception{
            List<String> warnings = new ArrayList<String>();
           boolean overwrite = true;
           File configFile = new File("mbg.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);
    }
}