springboot框架搭建代码快速生成,建MP代码生成器

介绍
当前spring boot/mybatis/mybatis-plus/JPA等框架快速提升了开发效率,但是整体框架目前还存在一些问题,比如:
1.部分框架繁琐代码;
2.繁重的配置;
3.脚手架搭建完成之后重复性工作;
针对以上问题,节约建立目录和文件的时间,减少简单的增删改查、分页重复性工作时间(增删改查、分页),特地生成了简单的代码生成工具

效果展示
spring boot项目初步生成
spring boot项目初步生成
利用代码工具生成
利用代码工具生成

解决方案

<!--mybatis-plus-->
<dependency>
  <groupId>com.baomidou</groupId>
  <artifactId>mybatis-plus-generator</artifactId>
  <version>3.2.0</version>
</dependency>

 <!-- velocity 模板引擎, Mybatis Plus 代码生成器需要 -->
<dependency>
  <groupId>org.apache.velocity</groupId>
  <artifactId>velocity-engine-core</artifactId>
  <version>2.1</version>
</dependency>

 <!-- 基于模板和要改变的数据 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具 -->
<dependency>
  <groupId>org.freemarker</groupId>
  <artifactId>freemarker</artifactId>
  <version>2.3.29</version>
</dependency>

<dependency>
  <groupId>com.ibeetl</groupId>
  <artifactId>beetl</artifactId>
  <version>3.0.11.RELEASE</version>
</dependency>

在resources目录下创建文件 application.yml

#### application.yml
spring:  
  application:    
    name: service-edu
profiles:    
  active: dev
####  application-dev.yml 
server:
  port: 8001
mybatis-plus:
   configuration:
       log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 
mapper-locations: classpath:com/MPG/service/*/mapper/*.xml 

global-config:
    db-config:
          logic-delete-value: 1
logic-not-delete-value: 0 
spring: 
datasource:
    type: com.zaxxer.hikari.HikariDataSource 
driver-class-name: com.mysql.cj.jdbc.Driver 
url: jdbc:mysql://localhost:3306/guli?serverTimezone=GMT%2B8 
username: root 
password: root 
hikari:
      connection-test-query: SELECT 1 
connection-timeout: 60000 
idle-timeout: 500000 
max-lifetime: 540000 
maximum-pool-size: 12 
minimum-idle: 10 
pool-name: GuliHikariPool 
jackson:
    date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8

创建MP代码生成器
在test/java目录下创建代码生成器:CodeGenerator.java

import com.baomidou.mybatisplus.core.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.NamingStrategy;
import org.apache.commons.lang3.StringUtils;

import java.util.Scanner;

/**
 * @author yed
 * @file Spring
 * @create 2022-06-06 9:11
 */
public class CodeGenerator {

  public static void main(String[] args) {
    // 代码生成器
    AutoGenerator mybatisPlusCodeGenerator = new AutoGenerator();

    // 全局配置
    GlobalConfig gc = new GlobalConfig();
    
    // 先得到当前工程目录
    String projectPath = System.getProperty("user.dir");
    // 是maven项目的结构,就是工程目录 + /src/main/java
    gc.setOutputDir(projectPath + "/src/main/java");
    
    // 设置生成文件的作者信息
    gc.setAuthor("Yed");

    //当代码生成完成之后是否打开代码所在的文件夹
    gc.setOpen(true);
    gc.setFileOverride(false); //重新生成时文件是否覆盖
    gc.setSwagger2(true); 实体属性 Swagger2 注解
    gc.setServiceName("%sService");//去掉Service接口的首字母I
    
    // 将上述的全局配置注入
    mybatisPlusCodeGenerator.setGlobalConfig(gc);

    // 数据源配置
    DataSourceConfig dataSourceConfiguration = new DataSourceConfig();

    dataSourceConfiguration.setUrl("jdbc:mysql://localhost:3306/spring?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=UTC");

    // dataSourceConfiguration.setSchemaName("public");
    dataSourceConfiguration.setDriverName("com.mysql.cj.jdbc.Driver");
    dataSourceConfiguration.setUsername("root");
    dataSourceConfiguration.setPassword("123456");

    mybatisPlusCodeGenerator.setDataSource(dataSourceConfiguration);

    // 包配置
    PackageConfig pc = new PackageConfig();

    // 设置父级包名
    pc.setParent("cn.echo42");//controller entity service service.impl

    pc.setModuleName(scanner("模块名"));
    //pc.setModuleName("sys");

    // 实体类名称
    pc.setEntity("domain");

    // mapper包名称
    pc.setMapper("mapper");

    // mapper对应的映射器xml
    pc.setXml("mapper.xml");

    // 业务包层名称
    pc.setService("service");

    // 业务接口的实现类包
    pc.setServiceImpl("service.impl");

    // 控制器包名称
    pc.setController("controller");

    // 装填包信息对象
    mybatisPlusCodeGenerator.setPackageInfo(pc);

    // 策略配置
    StrategyConfig strategy = new StrategyConfig();

    //设置字段和表名的是否把下划线完成驼峰命名规则
    strategy.setNaming(NamingStrategy.underline_to_camel);

    strategy.setColumnNaming(NamingStrategy.underline_to_camel);

    //设置生成的实体类继承的父类
    //strategy.setSuperEntityClass("com.sxt.BaseEntity");

    //是否启动lombok
    strategy.setEntityLombokModel(true);

    //是否生成resetController
    strategy.setRestControllerStyle(true);

    // 公共父类
    //strategy.setSuperControllerClass("com.sxt.BaseController");

    // 写于父类中的公共字段
    //strategy.setSuperEntityColumns("person_id","person_name");

    //要设置生成哪些表 如果不设置就是生成所有的表
    //strategy.setInclude(scanner("表名,多个英文逗号分割").split(","));

    strategy.setControllerMappingHyphenStyle(true);

    //strategy.setTablePrefix(pc.getModuleName() + "_");
    strategy.setTablePrefix("sys_");

    mybatisPlusCodeGenerator.setStrategy(strategy);

    mybatisPlusCodeGenerator.execute();
  }
}

运行上述代码:
在这里插入图片描述

生成结果如下:
生成的
生成的目录结构

在这里插入图片描述
最终结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值