本文源码: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-parentGitEE·地址https://gitee.com/cicadasmile/data-manage-parent

举荐浏览:编程体系整顿

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