乐趣区

关于mybatis:开发工具MybatisPlus插件三种方式的逆向工程

本文源码:GitHub·点这里 || GitEE·点这里

一、逆向工程简介

在 Java 开发中,长久层最罕用的框架就是 mybatis,该框架须要编写 sql 语句,mybatis 官网提供逆向工程,能够把数据表主动生成执行所须要的根底代码,例如:mapper 接口,sql 映射文件,pojo 实体类等,防止根底代码保护的繁冗过程。

在理论的应用中,罕用的逆向工程形式如上,mybatis 框架,mybatis-plus 框架,插件形式。

二、Mybatis 形式

1、根底形容

基于 xml 配置的形式,生成 mybatis 根底代码,包含 mapper 接口,Mapper 映射文件,pojo 实体类,PojoExample 条件工具类。

2、配置文件

留神这里的 targetProject 须要配置自定义门路地位。

<?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="testTables" targetRuntime="MyBatis3">
        <commentGenerator>
            <!-- 是否去除主动生成的正文 true:是:false: 否 -->
            <property name="suppressAllComments" value="true"/>
            <property name="suppressDate" value="false"/>
            <!-- 是否增加数据表中字段的正文 true:是:false: 否 -->
            <property name="addRemarkComments" value="true"/>
        </commentGenerator>

        <!-- 数据库的信息:驱动类、连贯地址、用户名、明码 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
            connectionURL="jdbc:mysql://localhost:3306/defined-log?tinyInt1isBit=false"
            userId="root" password="123456">
        </jdbcConnection>

        <!--
            默认 false,把 JDBC decimal 和 numeric 类型解析为 Integer
            设置 true 时把 JDBC decimal 和 numeric 类型解析为 BigDecimal
        -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <!-- 生成 POJO 类的地位 -->
        <javaModelGenerator targetPackage="com.generator.mybatis.pojo"
            targetProject="寄存门路">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>

        <!-- 生成 Mapper 映射文件的地位 -->
        <sqlMapGenerator targetPackage="com.generator.mybatis.xml"
            targetProject="寄存门路">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>

        <!-- 生成 Mapper 接口的地位 -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.generator.mybatis.mapper"
            targetProject="寄存门路">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>

        <!-- 指定数据库表 -->
        <table schema=""tableName="dt_defined_log"domainObjectName="DefinedLog"/>

    </context>
</generatorConfiguration>

3、启动类

读取配置文件,并执行。

public class GeneratorMybatis {public void generator() throws Exception {List<String> warnings = new ArrayList<String>();
        boolean overwrite = true;
        File configFile = Resources.getResourceAsFile("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 {GeneratorMybatis generatorMybatis = new GeneratorMybatis();
            generatorMybatis.generator();} catch (Exception e) {e.printStackTrace();
        }
    }
}

三、MybatisPlus 形式

1、根底形容

MybatisPlus 相比 Mybatis 提供更多加强的能力,单表操作根本都封装好了,所以生成的 mapper 映射文件简洁很多,须要留神 ServiceImpl 要害类和 BaseMapper 接口。

2、外围启动类

这里的配置能够基于很多自定义的策略,案例生成的代码曾经传到仓库,能够自行下载查看。

public class GeneratorMybatisPlus {public static void main(String[] args) {
        // 代码生成器
        AutoGenerator autoGenerator = new AutoGenerator();
        // 全局配置
        GlobalConfig globalConfig = new GlobalConfig();
        // 生成文件的输入目录
        String path="寄存门路";
        globalConfig.setOutputDir(path);
        // Author 设置作者
        globalConfig.setAuthor("mybatis-plus");
        // 文件笼罩
        globalConfig.setFileOverride(true);
        // 生成后关上文件
        globalConfig.setOpen(false);
        // 自定义文件名格调,%s 主动填充表实体属性
        globalConfig.setMapperName("%sMapper");
        globalConfig.setXmlName("%sMapper");
        globalConfig.setServiceName("%sDao");
        globalConfig.setServiceImplName("%sDaoImpl");
        globalConfig.setEntityName("%s");
        globalConfig.setControllerName("%sController");
        autoGenerator.setGlobalConfig(globalConfig);

        // 数据源配置
        DataSourceConfig dataSourceConfig = new DataSourceConfig();
        dataSourceConfig.setDbType(DbType.MYSQL);
        dataSourceConfig.setTypeConvert(new MySqlTypeConvert());
        dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/defined-log?tinyInt1isBit=false");
        dataSourceConfig.setDriverName("com.mysql.jdbc.Driver");
        dataSourceConfig.setUsername("root");
        dataSourceConfig.setPassword("123456");
        autoGenerator.setDataSource(dataSourceConfig);

        // 包名配置
        PackageConfig packageConfig = new PackageConfig();
        // 父包和子包名离开解决
        packageConfig.setParent("com.generator.mybatis.plus");
        packageConfig.setController("web");
        packageConfig.setEntity("pojo");
        packageConfig.setMapper("mapper");
        packageConfig.setService("dao");
        packageConfig.setServiceImpl("dao.impl");
        autoGenerator.setPackageInfo(packageConfig);

        // 生成策略配置
        StrategyConfig strategy = new StrategyConfig();
        // 设置命名格局
        strategy.setNaming(NamingStrategy.underline_to_camel);
        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
        // 实体是否为 lombok 模型,默认 false
        strategy.setEntityLombokModel(true);
        // 生成 @RestController 控制器
        strategy.setRestControllerStyle(true);
        // 驼峰转连字符
        strategy.setControllerMappingHyphenStyle(true);
        // 表和前缀解决
        strategy.setInclude("dt_defined_log".split(","));
        String[] tablePre = new String[]{"dt_"};
        strategy.setTablePrefix(tablePre);
        autoGenerator.setStrategy(strategy);
        // 执行,以上相干参数能够基于动静输出获取
        autoGenerator.execute();}
}

该形式是以后 mybatis 框架最风行的开发方式,代码会简洁很多。

四、插件工具

1、配置数据库

这里抉择 MySQL 数据源,后续依据提醒须要下载驱动配置。

2、连贯配置

Url 地址,账号,明码,获取连贯。

3、插件应用

这里抉择的是装置 EasyCode 插件。

依据配置,生成逆向工程文件,整体思路和上述两种形式统一。

五、源代码地址

GitHub·地址
https://github.com/cicadasmile/data-manage-parent
GitEE·地址
https://gitee.com/cicadasmile/data-manage-parent

举荐浏览:编程体系整顿

序号 项目名称 GitHub 地址 GitEE 地址 举荐指数
01 Java 形容设计模式, 算法, 数据结构 GitHub·点这里 GitEE·点这里 ☆☆☆☆☆
02 Java 根底、并发、面向对象、Web 开发 GitHub·点这里 GitEE·点这里 ☆☆☆☆
03 SpringCloud 微服务根底组件案例详解 GitHub·点这里 GitEE·点这里 ☆☆☆
04 SpringCloud 微服务架构实战综合案例 GitHub·点这里 GitEE·点这里 ☆☆☆☆☆
05 SpringBoot 框架根底利用入门到进阶 GitHub·点这里 GitEE·点这里 ☆☆☆☆
06 SpringBoot 框架整合开发罕用中间件 GitHub·点这里 GitEE·点这里 ☆☆☆☆☆
07 数据管理、分布式、架构设计根底案例 GitHub·点这里 GitEE·点这里 ☆☆☆☆☆
08 大数据系列、存储、组件、计算等框架 GitHub·点这里 GitEE·点这里 ☆☆☆☆☆
退出移动版