Mybatis自动生成实体对象MybatisGenerator

mybatis-generate配置

### mybatis-generate配置

#设置作者

author=zhangchq

#此处为本项目src所在路径(代码生成器输出路径)

OutputDir=

#login

OutputCommon=/frame-common

#provider

OutputProvider=/frame-provider

#java

OutputJava=/src/main/java

#resources

OutputResource=/src/main/resources

#mapper.xml的生成位置

OutputDirXml=

#自定义包路径

package=/com/atlp/project

#包路径配置

parentPath=com.atlp.project

#数据库地址

url=jdbc:mysql://192.168.1.205:3306/frame?useUnicode=true&characterEncoding=utf-8&tinyInt1isBit=false

userName=root

password=root123

pom引入jar

mybatis-plus-generator

MybatisGenerator自动生成

package com.atlp.generate;

import com.baomidou.mybatisplus.annotation.DbType;

import com.baomidou.mybatisplus.annotation.IdType;

import com.baomidou.mybatisplus.core.toolkit.StringPool;

import com.baomidou.mybatisplus.generator.AutoGenerator;

import com.baomidou.mybatisplus.generator.InjectionConfig;

import com.baomidou.mybatisplus.generator.config.*;

import com.baomidou.mybatisplus.generator.config.po.TableInfo;

import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

import java.util.ArrayList;

import java.util.List;

import java.util.ResourceBundle;

/**

* @Author: zhangchq

* @CreateTime: 2019年03月08日 16时23分

* @Decription: MybatisGenerator自动生成实体对象

*/

public class MybatisGenerator {

    public static void main(String[] args) throws InterruptedException {

        // 项目路径地址

        String projectAddress = System.getProperty("user.dir");

        // 需要生成实体的表

        String[] includeTables = new String[]{"atlp_b_com_auth", "atlp_b_com_dept", "atlp_b_com_emp", "atlp_b_com_menu", "atlp_b_com_role"};

        //用来获取Mybatis-Plus.properties文件的配置信息

        final ResourceBundle rb = ResourceBundle.getBundle("mybatis-plus");

        // 代码生成器

        AutoGenerator mpg = new AutoGenerator();

        // 全局配置

        GlobalConfig gc = new GlobalConfig();

        gc.setAuthor(rb.getString("author"));

        gc.setOpen(false);

        gc.setFileOverride(true);

        gc.setEntityName("%sEntity");

        gc.setMapperName("%sMapper");

        gc.setXmlName("%sMapper");

        gc.setIdType(IdType.AUTO);

        gc.setBaseResultMap(true);

        gc.setBaseColumnList(true);

        gc.setSwagger2(true);

        gc.setActiveRecord(true);

        mpg.setGlobalConfig(gc);

        // 数据源配置

        DataSourceConfig dsc = new DataSourceConfig();

        dsc.setDbType(DbType.MYSQL);

        dsc.setUrl(rb.getString("url"));

        dsc.setDriverName("com.mysql.jdbc.Driver");

        dsc.setUsername(rb.getString("userName"));

        dsc.setPassword(rb.getString("password"));

        mpg.setDataSource(dsc);

        // 包配置

        PackageConfig pc = new PackageConfig();

        pc.setParent(rb.getString("parentPath"));

        pc.setEntity("entity");

        pc.setMapper("mapper");

        mpg.setPackageInfo(pc);

        // 自定义配置

        InjectionConfig cfg = new InjectionConfig() {

            @Override

            public void initMap() {

                // to do nothing

            }

        };

        List<FileOutConfig> focList = new ArrayList<>();

        // 自定义 entity.java 输出目录

        focList.add(new FileOutConfig("/templates/entity.java.ftl") {

            @Override

            public String outputFile(TableInfo tableInfo) {

                return projectAddress + rb.getString("OutputCommon") + rb.getString("OutputJava")

                        + rb.getString("package") + "/entity/" + tableInfo.getEntityName() + StringPool.DOT_JAVA;

            }

        });

        // 自定义 mapper.java 输出目录

        focList.add(new FileOutConfig("/templates/mapper.java.ftl") {

            @Override

            public String outputFile(TableInfo tableInfo) {

                return projectAddress + rb.getString("OutputProvider") + rb.getString("OutputJava")

                        + rb.getString("package") + "/mapper/" + tableInfo.getMapperName() + StringPool.DOT_JAVA;

            }

        });

        // 自定义 mapper.xml 输出目录

        focList.add(new FileOutConfig("/templates/mapper.xml.ftl") {

            @Override

            public String outputFile(TableInfo tableInfo) {

                // 自定义输入文件名称

                return projectAddress + rb.getString("OutputProvider") + rb.getString("OutputResource")

                        + "/mapper/" + tableInfo.getEntityName() + StringPool.DOT_XML;

            }

        });

        cfg.setFileOutConfigList(focList);

        mpg.setCfg(cfg);

        mpg.setTemplate(new TemplateConfig().setXml(null));

        // 配置模板

        TemplateConfig templateConfig = new TemplateConfig();

        // 配置自定义输出模板

        //指定自定义模板路径,注意不要带上.ftl/.vm, 会根据使用的模板引擎自动识别

        templateConfig.setController(null);

        templateConfig.setServiceImpl(null);

        templateConfig.setService(null);

        templateConfig.setMapper(null);

        templateConfig.setXml(null);

        templateConfig.setEntity(null);

        mpg.setTemplate(templateConfig);

        // 策略配置

        StrategyConfig strategy = new StrategyConfig();

        strategy.setNaming(NamingStrategy.underline_to_camel);

        strategy.setColumnNaming(NamingStrategy.underline_to_camel);

        strategy.setEntityLombokModel(true);

        strategy.setSuperEntityClass("org.atlp.base.BaseEntity");

        strategy.setInclude(includeTables);

        mpg.setStrategy(strategy);

        mpg.setTemplateEngine(new FreemarkerTemplateEngine());

        mpg.execute();

    }

}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343

推荐阅读更多精彩内容