功能全面的mybatis-plus代码生成器,适合拿来主义!速度手冲!!!

本文介绍了MyBatis-Plus的代码生成器使用,通过配置数据源、全局参数、包信息、策略等,一键自动生成包括entity、mapper、service及impl在内的完整代码,极大地提高了开发效率。示例代码详细展示了如何配置并运行生成器,帮助开发者快速体验‘拿来主义’的便利。
摘要由CSDN通过智能技术生成

功能全面的mybatis-plus代码生成器,适合拿来主义!

产生原因

由于个人开发异常懒惰,非常厌倦配置常规的包一点点将配置复制进去,所以加了点注释供大家"食用",体验拿来主义的快乐。

源码

话不多说,上源码,大家冲!!!注释全在里面了!!!

package com.cxy.zjbg;

import com.baomidou.mybatisplus.annotation.DbType;
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.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

import java.util.ArrayList;
import java.util.List;

/**
 * @Author: xing-yu-chen
 * @Project: zj-bg
 * @Description: mybatis-plus 代码生成器
 * @Data:Created in 2021/7/12 9:26 下午
 */
public class CodeGenerator {
    public static void main(String[] args) {
        //创建generator对象
        // 代码生成器
        AutoGenerator autoGenerator = new AutoGenerator();

        //数据源
        DataSourceConfig dataSourceConfig = new DataSourceConfig();
        dataSourceConfig.setDbType(DbType.MYSQL);
        // 配置数据库 url 地址
        dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/zj_app?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai");
        // 配置数据库连接用户名
        dataSourceConfig.setUsername("root");
        // 配置数据库连接密码
        dataSourceConfig.setPassword("123456");
        // 配置数据库驱动
        dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
        autoGenerator.setDataSource(dataSourceConfig);

        //全局配置
        GlobalConfig globalConfig = new GlobalConfig();
        // 代码生成的目录
        globalConfig.setOutputDir(System.getProperty("user.dir")+"/src/main/java");
        // 配置是否打开目录,false 为不打开
        globalConfig.setOpen(false);
        //作者信息
        globalConfig.setAuthor("cxy");
        //实体属性 Swagger2 注解
        globalConfig.setSwagger2(true);
        // 默认生成的 service 会有 I 前缀
        globalConfig.setServiceName("%sService");
        //设置时间格式为常规Date
        globalConfig.setDateType(DateType.ONLY_DATE);
        autoGenerator.setGlobalConfig(globalConfig);

        //包信息
        PackageConfig packageConfig = new PackageConfig();
        // 配置父包名
        packageConfig.setParent("com.cxy");
        // 配置模块名
        packageConfig.setModuleName("zjbg");
        // 配置 controller 包名
        packageConfig.setController("controller");
        // 配置 service 包名
        packageConfig.setService("service");
        // 配置 service.impl 包名
        packageConfig.setServiceImpl("service.impl");
        // 配置 mapper 包名
        packageConfig.setMapper("mapper");
        // 配置 entity 包名
        packageConfig.setEntity("entity");
        //设置时间
        autoGenerator.setPackageInfo(packageConfig);

        // 自定义配置
        InjectionConfig cfg = new InjectionConfig() {
            @Override
            public void initMap() {
                // to do nothing
            }
        };

        // 如果模板引擎是 velocity
         String templatePath = "/templates/mapper.xml.vm";

        // 自定义输出配置
        List<FileOutConfig> focList = new ArrayList<>();
        // 自定义配置会被优先输出
        focList.add(new FileOutConfig(templatePath) {
            @Override
            public String outputFile(TableInfo tableInfo) {
                // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
                return System.getProperty("user.dir") + "/src/main/resources/mappers/"
                        + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
            }
        });

        cfg.setFileOutConfigList(focList);
        autoGenerator.setCfg(cfg);

        //配置策略(数据库表配置)
        StrategyConfig strategyConfig = new StrategyConfig();
        // 配置 lombok 模式
        strategyConfig.setEntityLombokModel(true);
        // 配置数据表与实体类名之间映射的策略
        strategyConfig.setNaming(NamingStrategy.underline_to_camel);
        // 配置数据表的字段与实体类的属性名之间映射的策略
        strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);
        // 配置 rest 风格的控制器(@RestController)
        strategyConfig.setRestControllerStyle(true);
        // 配置驼峰转连字符
        strategyConfig.setControllerMappingHyphenStyle(true);
        // 此处的表名为 t_users,去除前缀后剩下为 users。
        strategyConfig.setTablePrefix("t_");
        autoGenerator.setStrategy(strategyConfig);

        autoGenerator.execute();
    }
}

项目效果

整体

先来看个整体效果吧,表有点多,标志性来一下吧

在这里插入图片描述
好嗨哦!感觉人生已经到达了高潮!

entity

随手给你个例子瞅瞅

在这里插入图片描述
有Lombok,有表名注解,有Swagger注解的它不香吗?

mapper

在这里插入图片描述

xml

此处在mapper包下有xml,resource下也有就看你properties或者yml里配哪个位置,删掉一个即可

在这里插入图片描述

service

在这里插入图片描述

impl

在这里插入图片描述

这不冲?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿呆攻防

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值