【springboot】mybatis-generator配置

方法一(通過本地驅動包和maven)

1.修改pom.xml

確認已添加mybatis相關依賴

  <dependencies>
  		...
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.0</version>
        </dependency>
        ...
 </dependencies>

在build內添加mybatis-generator-maven-plugin插件

	<build>
		...
        <plugins>
            <!-- mybatis generator 自動生成代碼插件 -->
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.2</version>
                <configuration>
                    <configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>
                    <overwrite>true</overwrite>
                    <verbose>true</verbose>
                </configuration>
            </plugin>
        </plugins>
    </build>

2.新建配置文件generatorConfig.xml

文件位置
配置文件需要替換爲自己的幾處:

  • 本地硬盤數據驅動包(需要自己找mysql-connector-java-5.1.25.jar)位置classPathEntry ->location
  • 數據庫url及用戶名和密碼jdbcConnection ->connectionURL、userId、sword
  • 生成模型的包名和位置javaModelGenerator ->targetPackage
  • 生成映射文件的包名和位置sqlMapGenerator ->targetPackage
  • 生成DAO的包名和位置javaClientGenerator ->targetPackage
  • 要生成的表table

詳細配置可見:Mybatis Generator最完整配置詳解

<?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="D:\working\tools\mybatis-generator\mysql-connector-java-5.1.25.jar" />
       <context id="mysqlTable" targetRuntime="MyBatis3">
              <commentGenerator>
                     <property name="suppressDate" value="false" />
                     <!-- 是否去除自動生成的註釋 true:是 : false:-->
                     <property name="suppressAllComments" value="false" />
              </commentGenerator>
              <!--數據庫鏈接URL,用戶名、密碼 -->
              <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://127.0.0.1:3306/5g_city" userId="admin" sword="123"></jdbcConnection>
              <javaTypeResolver>
                     <property name="forceBigDecimals" value="false" />
              </javaTypeResolver>
              <!-- 生成模型的包名和位置-->
              <javaModelGenerator targetPackage="cn.chinaunicom.intelligenceinsight.model" targetProject="src/main/java">
                     <property name="enableSubPackages" value="true" />
                     <property name="trimStrings" value="true" />
              </javaModelGenerator>
              <!-- 生成映射文件的包名和位置-->
              <sqlMapGenerator targetPackage="mapping" targetProject="src/main/resources">
                     <property name="enableSubPackages" value="true" />
              </sqlMapGenerator>
              <!-- 生成DAO的包名和位置-->
              <javaClientGenerator type="XMLMAPPER" targetPackage="cn.chinaunicom.intelligenceinsight.mapper" targetProject="src/main/java">
                     <property name="enableSubPackages" value="true" />
              </javaClientGenerator>
              <!-- 要生成的表 tableName是數據庫中的表名或視圖名 domainObjectName是實體類名-->
              <table tableName="table_a" domainObjectName="TableA"></table>
              <table tableName="table_b"></table>
       </context>
</generatorConfiguration>

3.通過maven命令執行

在這裏插入圖片描述
自動生成的文件位置
在這裏插入圖片描述

方法二(tk.mybatis和mybatis-generator-core)

1.修改pom.xml

增添相關依賴

  <dependencies>
  		...
       <!--mybatis-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.1</version>
        </dependency>
        <!--mapper-->
        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <version>2.1.5</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-core</artifactId>
            <version>1.3.2</version>
            <scope>compile</scope>
            <optional>true</optional>
        </dependency>
        ...
 </dependencies>

2.tk.mybatis(繼承自己的MyMapper)

package com.lorogy.sprongboot.demo.utils;

import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.MySqlMapper;

public interface MyMapper<T> extends Mapper<T>, MySqlMapper<T> {
    //TODO
    //FIXME 特別注意,該接口不能被掃描到,否則會出錯
}

3.新建配置文件generatorConfig.xml

  • MyMapper位置tk.mybatis-->mappers
  • 數據庫及賬密
  • pojo所在包
  • mapper所在目錄
  • mapper對應的java映射
  • 需要自動生成的表table
<?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="MysqlContext" targetRuntime="MyBatis3Simple" defaultModelType="flat">
        <property name="beginningDelimiter" value="`"/>
        <property name="endingDelimiter" value="`"/>

        <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
            <property name="mappers" value="com.lorogy.sprongboot.demo.utils.MyMapper"/>
        </plugin>

        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://X.X.X.X:33306/test"
                        userId="admin"
                        password="1234">
        </jdbcConnection>

        <!-- 對於生成的pojo所在包 -->
        <javaModelGenerator targetPackage="com.lorogy.sprongboot.demo.model" targetProject="src/main/java"/>

		<!-- 對於生成的mapper所在目錄 -->
        <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"/>

		<!-- 配置mapper對應的java映射 -->
        <javaClientGenerator targetPackage="com.lorogy.sprongboot.demo.mapper" targetProject="src/main/java" type="XMLMAPPER"/>


        <table tableName="sys_user"></table>

    </context>
</generatorConfiguration>

4.執行文件,運行該文件即可自動生成

package com.lorogy.sprongboot.demo.utils;


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 GeneratorDisplay {

    public void generator() 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);

    }

    public static void main(String[] args) throws Exception {
        try {
            GeneratorDisplay generatorSqlmap = new GeneratorDisplay();
            generatorSqlmap.generator();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章