主要介绍一下mybatis Generator自动生成代码的几种方式。

通过Maven的方式

pom.xml文件中添加插件

<build>
     <defaultGoal>compile</defaultGoal>
     <plugins>
         <!-- mybatis generator插件-->
         <plugin>
             <groupId>org.mybatis.generator</groupId>
             <artifactId>mybatis-generator-maven-plugin</artifactId>
             <version>1.3.2</version>
             <configuration>
                 <configurationFile>D:/genCode/generatorConfig.xml</configurationFile>
                 <overwrite>true</overwrite>
                 <verbose>true</verbose>
             </configuration>
         </plugin>
     </plugins>
 </build>

执行mvn mybatis-generator:generate命令。

Eclipse/Itellij Idea安装插件的方式

Eclipse

help --> Eclipse Marketplace.... 安装 Mybatis Generator 1.3.7 插件 安装完成如下:

Eclipse Install

Itellij Idea

按照Maven的步骤,在Pom.xml中添加mybatis-generator插件。

然后maven projects-->pludins-->mybatis-generator-->mybaits-generator:generator。右击Run maven build.

Itellij Idea Install

代码的方式

项目添加mybatis-generator的jar包。

<!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
<dependency>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-core</artifactId>
    <version>1.3.7</version>
</dependency>

自动生成代码:

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import org.apache.log4j.Logger;
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;

/**
 * <b>代码生成</b>
 * 
 * 基于mybatis-generator
 */
public class MybatisGenerator {

    private static Logger logger = Logger.getLogger(MybatisGenerator.class);  

    public static void main(String[] args) throws Exception {

        logger.info("Start generator ...");
        List<String> warnings = new ArrayList<String>();
        boolean overwrite = true; // 是否覆盖原来的文件
        File configFile = new File("D:\\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);
        logger.info("Finish generator");
    }
}

关于generatorConfig.xml

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>
    <!-- 配置文件路径 -->
    <properties resource="mybatis/mysql-generator.properties" />

    <!--数据库驱动包路径 -->
    <classPathEntry location="${jdbc.driverLocation}" />

    <context id="MysqlTables" targetRuntime="MyBatis3">
        <!--关闭注释 -->
        <commentGenerator>
            <property name="suppressDate" value="true" />
            <property name="suppressAllComments" value="false" />
        </commentGenerator>

        <!--数据库连接信息 -->
        <jdbcConnection driverClass="${jdbc.driver}"
            connectionURL="${jdbc.url}" userId="${jdbc.username}" password="${jdbc.password}">
        </jdbcConnection>

        <!--生成的model 包路径 -->
        <javaModelGenerator targetPackage="${model.package}"
            targetProject="${project}/src/main/java">
            <property name="enableSubPackages" value="ture" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>

        <!--生成xml mapper文件 路径 -->
        <sqlMapGenerator targetPackage="${xml.package}"
            targetProject="${project}/src/main/resources">
            <property name="enableSubPackages" value="ture" />
        </sqlMapGenerator>

        <!-- 生成的Dao接口 的包路径 -->
        <javaClientGenerator targetPackage="${dao.package}"
            type="XMLMAPPER" targetProject="${project}/src/main/java">
            <property name="enableSubPackages" value="ture" />
        </javaClientGenerator>

        <!--对应数据库表名 -->

        <table tableName="t_member" enableCountByExample="true"
            enableUpdateByExample="true" enableDeleteByExample="true"
            enableSelectByExample="true" selectByExampleQueryId="true"
            domainObjectName="Member">
            <columnOverride column="STATUS" javaType="Integer" />
            <columnOverride column="FLAG" javaType="Long" />
            <columnOverride column="AGE" javaType="Long" />
        </table>

        <table tableName="t_account"
            enableCountByExample="true" enableUpdateByExample="true"
            enableDeleteByExample="true" enableSelectByExample="true"
            selectByExampleQueryId="true" domainObjectName="Account">
            <columnOverride column="FLOW_CHANNEL" javaType="Integer" />
        </table>
    </context>
</generatorConfiguration>

generator.properties

jdbc.driverLocation=D:/ojdbc-16.jar
jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@192.168.123.100:1539:db
jdbc.username=root
jdbc.password=root

model.package=top.wswzms.entity
dao.package=top.wswzms.mapper
xml.package=persistence.mapper

project = test

资料

Copyright © wswzms.top 2019 all right reserved,powered by Gitbook该文件修订时间: 2019-04-19 14:55:37

results matching ""

    No results matching ""