MyBatis-Generator快速入门 <二>(idea中的快速应用)
1.引入依赖包mybatis-generator-core
2.编写mybatis-generator的配置文件 generatorConfig.xml(名字自己取)
3.编写generatorConfig.properties文件(为了将配置文件中的变化数据单独抽离出来)
4.MBG的两种运行方式(还有其他的,这里只介绍两种),使用java类生成和使用plugin插件生成。
1.引入依赖包
<!-- mybatis-generator-core --> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <scope>test</scope> </dependency>
2. generatorConfig.properties文件(一般情况下,很少操作多个表,所以只配置了一个tableName)
#数据库相关配置
mysqlConnectorPath={存放路径}/mysql/mysql-connector-java/5.1.40/mysql-connector-java-5.1.40.jar
driverClass=com.mysql.jdbc.Driver
connectionURL=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=UTF-8
userId=xxx{登录用户名}
password=xxx{登录密码}
#项目路径--工程的源代码存放位置
targetProject=E:/workspace/UseMybatis/UseMybatis
#存放实体类的位置
pojoProject=E:/workspace/UseMybatis/UseMybatis-domain
pojoPackage=com.lvdalin.stu.mybatis.domain
#存放mapper文件的位置
mapperProject=E:/workspace/UseMybatis/UseMybatis-dao
mapperPackage=mybatis.mapper
#存放dao的位置
daoProject=E:/workspace/UseMybatis/UseMybatis-dao
daoPackage=com.lvdalin.stu.mybatis.dao
#表名
tableName=mybatis_user
#表对应实体类名
domainObjectName=User
#别名 推荐使用,遇到表关联的时候,使用起来修改的东西比较少。
tableAlias=u3.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>
    <!-- 引入配置文件 -->
    <properties resource="generatorConfig.properties"/>
    <classPathEntry location="${mysqlConnectorPath}" />
    <context id="context1" targetRuntime="MyBatis3">
        <commentGenerator>
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <property name="suppressAllComments" value="true" />
        </commentGenerator>
        <jdbcConnection connectionURL="${connectionURL}"
                        driverClass="${driverClass}" password="${userId}" userId="${password}" />
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>
        <javaModelGenerator targetPackage="${pojoPackage}" targetProject="${pojoProject}srcmainjava">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
            <!-- 从数据库返回的值被清理前后的空格 -->
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        <sqlMapGenerator targetPackage="${mapperPackage}" targetProject="${mapperProject}srcmain
esources">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>
        <javaClientGenerator targetPackage="${daoPackage}" targetProject="${daoProject}srcmainjava"
                             type="XMLMAPPER">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>
        <table tableName="${tableName}" domainObjectName="${domainObjectName}"
               enableCountByExample="true" enableUpdateByExample="true"
               enableDeleteByExample="true" enableSelectByExample="true"
               selectByExampleQueryId="true" alias="${tableAlias}" >
        </table>
    </context>
</generatorConfiguration>4.MBG的运行方式
a.java类运行,确定好配置文件路径,运行即可。 MyBatisGeneratorMain.java
package com.lvdalin.stu.mybatis.generate;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.exception.InvalidConfigurationException;
import org.mybatis.generator.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;
import java.io.File;
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class MyBatisGeneratorMain {
    public static void main(String[] args) {
        List<String> warnings = new ArrayList<String>();
        boolean overwrite = true;
        String genCfg = "/generatorConfig.xml";//路径与防止这个文件的位置有关
        File configFile = new File(MyBatisGeneratorMain.class.getResource(genCfg).getFile());
        ConfigurationParser cp = new ConfigurationParser(warnings);
        Configuration config = null;
        try {
            config = cp.parseConfiguration(configFile);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (XMLParserException e) {
            e.printStackTrace();
        }
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        MyBatisGenerator myBatisGenerator = null;
        try {
            myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
        } catch (InvalidConfigurationException e) {
            e.printStackTrace();
        }
        try {
            myBatisGenerator.generate(null);
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}b.使用plugin运行 在pom文件中添加mybatis-generator-maven-plugin,指明配置文件路径,然后在当前项目下的Plugins下run。
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version> <configuration> <!--配置文件的位置--> <configurationFile>src/main/resources/generatorConfig.xml</configurationFile> <verbose>true</verbose> <overwrite>true</overwrite> </configuration> </plugin> </plugins> </build>
下载源码: