博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mybatisPlus代码生成工具
阅读量:5174 次
发布时间:2019-06-13

本文共 5301 字,大约阅读时间需要 17 分钟。

手敲entity、dao、mapper.xml、service、controller的老套路,不仅让人厌倦,还严重影响开发效率。作为开发,不是应该更专注业务功能的实现吗?

毕竟这些无关业务逻辑,要是给个表名,就有个现成的CRUD代码就好了!

这不,mybatisplus提供了代码生成器,轻松生成mvc三层代码。

首先,引入pom文件

mysql
mysql-connector-java
org.projectlombok
lombok
true
com.baomidou
mybatis-plus-boot-starter
3.0.6
org.apache.velocity
velocity-engine-core
2.1

然后,代码生成器如下:

package domain;import com.baomidou.mybatisplus.annotation.DbType;import com.baomidou.mybatisplus.generator.AutoGenerator;import com.baomidou.mybatisplus.generator.config.DataSourceConfig;import com.baomidou.mybatisplus.generator.config.GlobalConfig;import com.baomidou.mybatisplus.generator.config.PackageConfig;import com.baomidou.mybatisplus.generator.config.StrategyConfig;import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;import com.baomidou.mybatisplus.generator.engine.VelocityTemplateEngine;/** * 生成代码工具 */public class Generate {    public static void main(String[] args) {        Generate g = new Generate();        boolean startWithI = true;        String projectName = "Demo";        String packageName = "com.xp.boot.web";        String tableName = "test_log";        g.generateByTables(startWithI,projectName,packageName,tableName);    }    /**     * 根据表自动生成     *     * @param serviceNameStartWithI 默认为false     * @param packageName           包名     * @param tableNames            表名     */    private void generateByTables(boolean serviceNameStartWithI,String projectName, String packageName, String... tableNames) {        //配置数据源        DataSourceConfig dataSourceConfig = getDataSourceConfig();        // 策略配置        StrategyConfig strategyConfig = getStrategyConfig(tableNames);        //全局变量配置        GlobalConfig globalConfig = getGlobalConfig(serviceNameStartWithI,projectName);        //包名配置        PackageConfig packageConfig = getPackageConfig(packageName);        //自动生成        atuoGenerator(dataSourceConfig, strategyConfig, globalConfig, packageConfig);    }    /**     * 集成     *     * @param dataSourceConfig 配置数据源     * @param strategyConfig   策略配置     * @param config           全局变量配置     * @param packageConfig    包名配置     */    private void atuoGenerator(DataSourceConfig dataSourceConfig, StrategyConfig strategyConfig, GlobalConfig config, PackageConfig packageConfig) {        new AutoGenerator()                .setGlobalConfig(config)                .setDataSource(dataSourceConfig)                .setStrategy(strategyConfig)                .setPackageInfo(packageConfig)                .setTemplateEngine(new VelocityTemplateEngine())                .execute();    }    /**     * 设置包名     *     * @param packageName 父路径包名     * @return PackageConfig 包名配置     */    private PackageConfig getPackageConfig(String packageName) {        return new PackageConfig()                .setParent(packageName)                .setXml("mapper")                .setMapper("mapper")                .setController("controller")                .setService("service")                .setEntity("entity");    }    /**     * 全局配置     *     * @param serviceNameStartWithI false     * @return GlobalConfig     */    private GlobalConfig getGlobalConfig(boolean serviceNameStartWithI,String projectName) {        GlobalConfig globalConfig = new GlobalConfig();        globalConfig                .setBaseColumnList(true)                .setBaseResultMap(true)                .setActiveRecord(false)                .setAuthor("尼古拉斯-肖")                //设置输出路径                .setOutputDir(System.getProperty("user.dir")+"/"+projectName+"/src/main/java/")                .setFileOverride(true);        if (!serviceNameStartWithI) {            //设置service名            globalConfig.setServiceName("%sService");        }        return globalConfig;    }    /**     * 策略配置     *     * @param tableNames 表名     * @return StrategyConfig     */    private StrategyConfig getStrategyConfig(String... tableNames) {        return new StrategyConfig()                // 全局大写命名 ORACLE 注意                .setCapitalMode(true)                .setEntityLombokModel(true)                .setRestControllerStyle(false)                //从数据库表到文件的命名策略                .setNaming(NamingStrategy.underline_to_camel)                .setColumnNaming(NamingStrategy.underline_to_camel)                //需要生成的的表名,多个表名传数组                .setInclude(tableNames);    }    /**     * 配置数据源     *     * @return 数据源配置 DataSourceConfig     */    private DataSourceConfig getDataSourceConfig() {        return new DataSourceConfig().setDbType(DbType.MYSQL)                .setUrl("jdbc:mysql://localhost:3306/test?serverTimezone=Hongkong&nullCatalogMeansCurrent=true&characterEncoding=UTF-8&useSSL=false")                .setUsername("root")                .setPassword("123456")                .setDriverName("com.mysql.cj.jdbc.Driver");    }}

配置好数据库,以及表名、包名等参数后,main方法运行: 

代码就生成在对应的位置了:

转载于:https://www.cnblogs.com/xphhh/p/11460600.html

你可能感兴趣的文章
UvaLive 6664 Clock Hands
查看>>
PCB 周期计算采用 SQL 函数调用.net Dll 标量函数 实现
查看>>
Problem B: 取石子
查看>>
Python学习笔记001——Linux
查看>>
Vue: 常用指令
查看>>
简单介绍.Net3.0 中跨线程访问控件
查看>>
oracle imp 工具可能出现的问题
查看>>
bzoj1045题解
查看>>
学习Cocos2d的博客 --推荐
查看>>
SpringMVC中@RequestMapping参数设置
查看>>
lea实现加法
查看>>
文件操作
查看>>
spring容器启动的加载过程(三)
查看>>
java之接口适配器
查看>>
nginx安装手册
查看>>
动态将ASPX生成HTML网页并将网页导出PDF
查看>>
Find Backpacker Jobs in Australia
查看>>
面试题:return和finally执行
查看>>
Heroku第三方服务接入指南(二)
查看>>
MSRA专访摘要
查看>>