天天看點

使用Mybatis-Generator的三種常用方式

Mybatis-Generator介紹

MyBatis Generator (MBG) 是一個Mybatis的代碼生成器 MyBatis 和 iBATIS. 他可以生成Mybatis各個版本的代碼,和iBATIS 2.2.0版本以後的代碼。 他可以通過資料庫的表(或多個表)生成可以用來通路(多個)表的基礎對象。 這樣和資料庫表進行互動時不需要建立對象和配置檔案。 MBG的解決了對資料庫操作有最大影響的一些簡單的CRUD(插入,查詢,更新,删除)操作。 不過仍然需要對聯合查詢和存儲過程手寫SQL和對象。

詳細文檔請檢視http://www.mybatis.org/generator/(英文)

http://mbg.cndocs.tk/(中文)

接下來介紹如何使用該工具:

方式一:使用java配置(推薦)

優勢:不依賴于開發工具

步驟一:添加依賴包

pom.xml

<dependency>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-core</artifactId>
    <version>1.3.5</version>
</dependency>
           

或者自行下載下傳jar包,位址:https://github.com/mybatis/generator/releases/tag/mybatis-generator-1.3.5

步驟二:建立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>
<!-- 資料庫驅動jar包 -->
  <classPathEntry location="D:/repository/mysql/mysql-connector-java/5.1.25/mysql-connector-java-5.1.25.jar" />
  <context id="DBTables" targetRuntime="MyBatis3">
    <!-- jdbc連接配接配置 -->
    <jdbcConnection driverClass="com.mysql.jdbc.Driver"
        connectionURL="jdbc:mysql://localhost:3306/shopping?characterEncoding=utf8"
        userId="root"
        password="123456">
    </jdbcConnection>
    <!-- false: JDBC DECIMAL 和 NUMERIC 類型解析為 Integer(預設)
         true: JDBC DECIMAL 和   NUMERIC 類型解析為java.math.BigDecimal -->
    <javaTypeResolver >
      <property name="forceBigDecimals" value="false" />
    </javaTypeResolver>
    <!-- targePackage 指定生成的PO類所在的包 
         targetProject 指定包所在的項目路徑(項目名/src/main/java或者./src/main/java)根據實際效果選擇 -->
    <javaModelGenerator targetPackage="com.mybatis.po" targetProject="./src/main/java">
    <!-- 是否使用子包 ,即schema(表空間)作為包名字尾-->
      <property name="enableSubPackages" value="false" />
      <!-- 意味着任何字元串屬性的setter方法将調用trim方法,去除空白符-->
      <property name="trimStrings" value="true" />
    </javaModelGenerator>
    <!-- targetPackage 指定生成的XML配置檔案所在包 -->
    <sqlMapGenerator targetPackage="com.mybatis.mapper"  targetProject="./src/main/java">
      <property name="enableSubPackages" value="true" />
    </sqlMapGenerator>
    <!-- targetPackage 指定生成的mapper接口所在包 -->
    <javaClientGenerator type="XMLMAPPER" targetPackage="test.dao"  targetProject=""./src/main/java"">
      <property name="enableSubPackages" value="true" />
    </javaClientGenerator>
    <!-- 指定資料庫表 此處還有很多自定義配置,根據個人需求進行設定即可 -->  
            <table tableName="user"></table>  
            <table tableName="order"></table>  
            <table tableName="detail"></table>  
            <table tableName="item"></table>  
    <!-- <table schema="DB2ADMIN" tableName="ALLTYPES" domainObjectName="Customer" >
      <property name="useActualColumnNames" value="true"/>
      <generatedKey column="ID" sqlStatement="DB2" identity="true" />
      <columnOverride column="DATE_FIELD" property="startDate" />
      <ignoreColumn column="FRED" />
      <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" />
    </table> -->
  </context>
</generatorConfiguration>
           

步驟三:運作java代碼

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 Generator {
    public static void main(String[] args) throws Exception{
        List<String> warnings = new ArrayList<String>();
        boolean overwrite = false;
        //指定逆向工程配置檔案
        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);
    }
}
           

結束!

方式二:使用Eclipse插件

步驟一:下載下傳插件http://download.csdn.net/download/baalhuo/9526993複制相應檔案到Eclipse相應目錄下,重新開機Eclipse

步驟二:右鍵項目New–>Other

使用Mybatis-Generator的三種常用方式

步驟二:建立xml文檔(内容同上)

使用Mybatis-Generator的三種常用方式

步驟三:右鍵generatorConfig.xml 選擇 Generate Mybatis/ibatis Artifacts即可完成!

注意注意:如果出現下列情況:

1:Cannot resolve classpath entry: C:…\5.1.25\mysql-connector-java-5.1.25.jar

解決:檢查資料庫驅動包路徑是否正确,相對路徑不管用就使用絕對路徑

2:

使用Mybatis-Generator的三種常用方式

這種情況通常是由于targetProject路徑設定有誤造成的。

解決:使用

./src/main/java

或者

項目名稱/src/main/java

3:java代碼運作後沒有報錯,也沒有生成代碼

解決:檢查targetPackage或者targetProject

方式三:使用Maven 插件

MyBatis Generator (MBG) 包含了一個可以內建到Maven建構的Maven插件,按照Maven的配置慣例, 将MBG內建到Maven很容易. 最簡配置如下:

<project ...>
     ...
     <build>
       ...
       <plugins>
        ...
        <plugin>
          <groupId>org.mybatis.generator</groupId>
          <artifactId>mybatis-generator-maven-plugin</artifactId>
          <version></version>
        </plugin>
        ...
      </plugins>
      ...
    </build>
    ...
  </project>
           

可以在指令行通過以下指令執行:

mvn mybatis-generator:generate
           

您可以通過标準的Maven指令屬性傳遞參數, 例如:

mvn -Dmybatis.generator.overwrite=true mybatis-generator:generate
           

這條指令會使MBG覆寫重名的檔案

其他配置資訊或者配置方式請檢視官方文檔。http://www.mybatis.org/generator