当前位置:首页 > 未命名 > 正文内容

MyBatis-Generator快速入门 <二>(idea中的快速应用)

淙嶙7年前 (2018-05-29)未命名1229

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&amp;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=u

3.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>

下载源码:

UseMybatis.zip


相关文章

设计模式是什么鬼

设计模式是什么鬼

设计模式是什么鬼?“世界处处不设计”有物混成,先天地生。寂兮寥兮,独立而不改,周行而不殆,可以为天地母。吾不知其名,字之曰道,强为之名曰大。大曰逝,逝曰远,远曰反。道是什么?道可道,非常道。道不明,说...

docker 简介

docker 简介

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布...

说一说Java的Unsafe类

说一说Java的Unsafe类

最近在看Java并发包的源码,发现了神奇的Unsafe类,仔细研究了一下,在这里跟大家分享一下。Unsafe类是在sun.misc包下,不属于Java标准。但是很多Java的基础类库,包括一些被广泛使...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。