当前位置: 首页 > news >正文

MyBatis-Plus 代码生成器

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

1、参考官方文档:https://mybatis.plus/guide/generator.html

2、相关依赖

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.9.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.0</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>2.2.0</version>
        </dependency>
    </dependencies>

3、代码生成器

package com.zhui;

import com.baomidou.mybatisplus.exceptions.MybatisPlusException;
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.DbType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import org.apache.commons.lang3.StringUtils;

import java.util.Scanner;

/**
 * <p>
 *  MyBatisPlus代码生成器
 * </p>
 *
 * @author 张辉
 * @since 2019-01-11
 */
public class CodeGenerator {
    /**
     * <p>
     * 读取控制台内容
     * </p>
     */
    public static String scanner(String tip) {
        Scanner scanner = new Scanner(System.in);
        StringBuilder help = new StringBuilder();
        help.append("请输入" + tip + ":");
        System.out.println(help.toString());
        if (scanner.hasNext()) {
            String ipt = scanner.next();
            if (StringUtils.isNotEmpty(ipt)) {
                return ipt;
            }
        }

        throw new MybatisPlusException("请输入正确的" + tip + "!");
    }

    public static void main(String[] args) {
         String projectPath = System.getProperty("user.dir");
        // 1、全局配置
        GlobalConfig globalConfig = new GlobalConfig();
        globalConfig.setActiveRecord(false) // 是否支持AR模式
                .setEnableCache(false)
                .setAuthor("zhui") // 作者
                .setOutputDir(projectPath + "/mybatis-plus-demo/src/main/java") // 生成路径
                .setFileOverride(true)  // 重新生成不覆盖原有文件
                .setServiceName("%sService")// 设置生成的service接口的名字的首字母是否为I,如IUserService
                // .setBaseResultMap(true)
                .setBaseColumnList(true)
                .setOpen(false);

        // 2、数据源配置
        DataSourceConfig dataSourceConfig = new DataSourceConfig();
        dataSourceConfig.setDbType(DbType.MYSQL) // 设置数据库类型
                .setDriverName("com.mysql.jdbc.Driver")
                .setUrl("jdbc:mysql://localhost:3306/test")
                .setUsername("root")
                .setPassword("root");

        // 3、策略配置
        StrategyConfig strategyConfig = new StrategyConfig();
        strategyConfig.setCapitalMode(true) // 全局大写命名
                .setDbColumnUnderline(true) // 指定表名 字段名是否使用下划线
                .setNaming(NamingStrategy.underline_to_camel) // 数据库表映射到实体的命名策略
                // .setTablePrefix("tbl_") // 指定表的前缀
                .setInclude(scanner("表名"))
                .setRestControllerStyle(true);

        // 4、包名策略配置
        PackageConfig packageConfig = new PackageConfig();
        packageConfig.setParent("com.zhui") // 父包
                // .setMapper(scanner("模块名"))
                .setMapper("mapper") // mapper包位置
                .setService("service") // service包位置
                .setController("controller") // controller包位置
                .setEntity("entity"); // Entity包位置

        // 5、整合配置
        AutoGenerator autoGenerator = new AutoGenerator();
        autoGenerator.setGlobalConfig(globalConfig)
                .setDataSource(dataSourceConfig)
                .setStrategy(strategyConfig)
                .setPackageInfo(packageConfig);
        // 6、执行
        autoGenerator.execute();
    }

}

 

转载于:https://my.oschina.net/zhui666/blog/3000524

相关文章:

  • 归并排序(python)
  • C++学习札记(2011-10-06)
  • 蔚来汽车秦力洪:智能化与电动化天生融合,6大核心技术自主研发 | 电动汽车百人会 2019...
  • 杭电2090
  • Arcgis Runtime 100.3开发实例源代码调试日志
  • 上厅房,下厨房,ElasticSearch有的忙
  • Linux安装gitlab
  • 专家齐议尘肺病农民救助难点
  • Codeforces Round #532(Div. 2) A.Roman and Browser
  • 澳大利亚将开启全球人才计划 吸引优秀技术移民
  • kubernetes 设置CA双向数字证书认证
  • 澳门消防局拟购置无人机协助紧急救援
  • spring学习总结(一)_Ioc基础(下)
  • 联邦法官驳回章莹颖案被告所有动议 全案按原计划审理
  • MySQL逻辑架构及性能优化原理
  • java 多线程基础, 我觉得还是有必要看看的
  • 对象引论
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 聚类分析——Kmeans
  • 前端面试总结(at, md)
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 硬币翻转问题,区间操作
  • const的用法,特别是用在函数前面与后面的区别
  • Nginx实现动静分离
  • 阿里云重庆大学大数据训练营落地分享
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • (11)MSP430F5529 定时器B
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (a /b)*c的值
  • (Matlab)使用竞争神经网络实现数据聚类
  • (六)Hibernate的二级缓存
  • (三十五)大数据实战——Superset可视化平台搭建
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (译)计算距离、方位和更多经纬度之间的点
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)linux 命令大全
  • ***通过什么方式***网吧
  • .gitignore
  • .Net Core 中间件验签
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .NET 读取 JSON格式的数据
  • .NET 回调、接口回调、 委托
  • .NET 中的轻量级线程安全
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • .net2005怎么读string形的xml,不是xml文件。
  • .NET成年了,然后呢?
  • .net连接oracle数据库
  • .py文件应该怎样打开?
  • ??在JSP中,java和JavaScript如何交互?
  • [ vulhub漏洞复现篇 ] ThinkPHP 5.0.23-Rce
  • [2021ICPC济南 L] Strange Series (Bell 数 多项式exp)
  • [AR]Vumark(下一代条形码)
  • [AutoSar]工程中的cpuload陷阱(三)测试
  • [BUUCTF]-PWN:[极客大挑战 2019]Not Bad解析