专栏首页小码农薛尧Mybatis Generator的使用

Mybatis Generator的使用

在写代码过程中,常常要写一些简单的CURD操作,为了能够把时间用在业务逻辑上,看了Mybatis Generator生成工具,根据官网的文档,改成适合自己使用的生成器。

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>
    <!--读取配置文件-->
    <properties resource="generator.properties" />

    <context id="MySQLContext" targetRuntime="MyBatis3">
        <!--设置文件编码-->
        <property name="javaFileEncoding" value="UTF-8"/>

        <!--配置去掉所有生成的注释-->
        <commentGenerator>
            <property name="suppressAllComments" value="true" />
        </commentGenerator>

        <!--设置数据库连接驱动-->
        <jdbcConnection driverClass="${jdbc.driverClass}"
                        connectionURL="${jdbc.url}"
                        userId="${jdbc.username}"
                        password="${jdbc.password}">
        </jdbcConnection>

        <!--当字段类型是 DECIMAL或者 NUMERIC时,是否强制转换为BigDecimal,否的话会自动根据规模的大小选择合适的类型  -->
        <javaTypeResolver >
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <!-- 生成模型的包名和位置-->
        <javaModelGenerator targetPackage="me.xueyao.model" targetProject=".\src\main\java">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>

        <!-- 生成映射文件的包名和位置-->
        <sqlMapGenerator targetPackage="me.xueyao.mapper"  targetProject=".\src\main\resources">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>

        <!-- 生成DAO的包名和位置-->
        <javaClientGenerator type="XMLMAPPER" targetPackage="me.xueyao.mapper"
                             targetProject=".\src\main\java">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>

        <!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名,需要根据自己的需求修改-->
        <table  tableName="candidate" domainObjectName="Candidate" enableCountByExample="false"
            enableDeleteByExample="false" enableSelectByExample="false" enableUpdateByExample="false">
            <generatedKey column="id" sqlStatement="MySql" identity="true" />
        </table>

    </context>
</generatorConfiguration>

mybatis generator的执行文件 如下:

package me.xueyao;

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;

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

/**
 * @Description: Mybatis Generator 生成器
 * @Author: Simon.Xue
 * @Date: 2019/1/18 13:44
 */
public class Generator {

    public static void main(String[] args) throws Exception {
        //警告信息集合
        List<String> warnings = new ArrayList<String>();
        //读取生成器的配置文件
        InputStream resourceAsStream = Generator.class.getResourceAsStream("/mybatis-generator.xml");
        //创建配置解析器
        ConfigurationParser configurationParser = new ConfigurationParser(warnings);
        //解析配置文件
        Configuration configuration = configurationParser.parseConfiguration(resourceAsStream);
        resourceAsStream.close();
        //true时,如果有相同的文件则覆盖文件
        DefaultShellCallback defaultShellCallback = new DefaultShellCallback(true);
        //创建生成器对象
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(configuration, defaultShellCallback, warnings);
        //执行生成代码
        myBatisGenerator.generate(null);
        //输出警告信息
        for (String warning : warnings) {
            System.out.println(warning);
        }
    }
}

源代码托管在GitHub

本文分享自微信公众号 - 小码农薛尧(flowstons),作者:流体石头

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-01-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Docker入门-Dockerfile的使用

    镜像的定制实际上就是定制每一层所添加的配置、文件。我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,这个脚本就是Dockerfile。

    小码农薛尧
  • 设计模式入门-简单工厂模式

    话说设计模式是我们面试中经常遇到的问题,但是开发中遇到的也不少。之前一直想学设计模式,然后总结写一些文章,但一直忙于其它事情,现在终于要学习设计模式,参考的书籍...

    小码农薛尧
  • Docker进阶-资源管理Swarm+Portainer

    Docker Swarm是Docker官方三剑客项目之一,提供Docker容器集群服务,是Docker官方对容器云生态进行支持的核心方案。

    小码农薛尧
  • 使用Maven插件来完成Mybatis逆向工程

    Mybatis官方提供了逆向工程支持,只需简单操作,就可以根据数据库的表生成简单的实体类POJO和Mapper等文件。这里仅仅介绍使用Maven的插件来自动完...

    itlemon
  • Elasticsearch Network Settings

    Elasticsearch 缺省情况下是绑定 localhost。对于本地开发服务是足够的(如果你在相同机子上启动多个节点,它还可以形成一个集群),但是你需要配...

    用户3148308
  • MyBatis系列第2篇:入门篇,带你感受一下mybatis独特的魅力!

    Mybatis系列目标:从入门开始开始掌握一个高级开发所需要的Mybatis技能。

    路人甲Java
  • python 面向对象基础 实例属性和类属性

    但是,如果Student类本身需要绑定一个属性呢?可以直接在class中定义属性,这种属性是类属性,归Student类所有:

    葫芦
  • Hibernate二级缓存存集合对象

    <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC ...

    Hongten
  • Python学习 :深浅拷贝

    只拷贝第一层数据(不可变的数据类型),并创建新的内存空间进行储蓄,例如:字符串、整型、布尔

    py3study
  • 企业将面临的合规性难题

    随着终端用户对个人数据的安全性变得越来越敏感,像开放式银行这样的举措开始生效,这些挑战只会越来越大。这就是为什么组织不应该回避公共基础设施的原因,而应该把它们作...

    静一

扫码关注云+社区

领取腾讯云代金券