【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();
        }

    }
}


猜你喜欢

转载自blog.csdn.net/lorogy/article/details/106325756
今日推荐