SpringBoot代码生成器-基于Mybatis Plus
Java猫
共 4256字,需浏览 9分钟
·
2021-12-15 22:25
SpringBoot代码生成器-基于Mybatis Plus
可在SpringBoot项目中,快速生成基本结构代码,并且映射数据库字段实体,方便快捷。
快速搭建项目结构,实用性+++++!!!!
配置好生成器代码参数即可一键生成代码。
1.引入依赖:
<dependency>
<groupId>com.baomidougroupId>
<artifactId>mybatis-plus-boot-starterartifactId>
<version>3.4.2version>
dependency>
<dependency>
<groupId>com.baomidougroupId>
<artifactId>mybatis-plus-generatorartifactId>
<version>3.0-RC1version>
dependency>
<dependency>
<groupId>org.apache.velocitygroupId>
<artifactId>velocityartifactId>
<version>1.7version>
dependency>
<dependency>
<groupId>org.projectlombokgroupId>
<artifactId>lombokartifactId>
<version>1.18.20version>
dependency>
2.代码生成器:
package com.hbm.codegeneration;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.FieldFill;
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.po.TableFill;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.VelocityTemplateEngine;
import java.util.ArrayList;
import java.util.List;
/**
* 代码生成器
*
* @Author 黄柏茗
* @Date 2021-12-10
*/
public class Main {
public static void main(String[] args) {
//代码生成器
AutoGenerator autoGenerator = new AutoGenerator();
//1.数据源配置
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setDbType(DbType.MYSQL);//数据库枚举类型
dataSourceConfig.setDriverName("com.mysql.jdbc.Driver");
dataSourceConfig.setUsername("root");
dataSourceConfig.setPassword("1234");
dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/Test?useUnicode=true&characterEncoding=UTF-8");
autoGenerator.setDataSource(dataSourceConfig); //数据源配置进自动生成器里
//2.全局配置
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setOpen(false); //代码生成后是否自动打开 (代码生成完成后以文件夹形式弹出来)
globalConfig.setOutputDir(System.getProperty("user.dir")+"/src/main/java");//设置代码输出路径(当前系统项目路径,源代码Java里面)
globalConfig.setAuthor("黄柏茗"); //作者名
globalConfig.setServiceName("%sService"); //%s代表表名前缀,后面补上Service
autoGenerator.setGlobalConfig(globalConfig);
//3.包配置
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent("com.hbm.codegeneration");//父包名
packageConfig.setEntity("entity");//实体类包名
packageConfig.setMapper("mapper");//mapper包名
packageConfig.setController("controller");//控制层包名
packageConfig.setService("service");//业务层接口包名
packageConfig.setServiceImpl("service.impl");//业务层实现类包名
autoGenerator.setPackageInfo(packageConfig);
//策略配置
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setEntityLombokModel(true);//是否给实体类添加 Lombok 的注解
strategyConfig.setNaming(NamingStrategy.underline_to_camel);//表名映射类名,下划线转驼峰 如:表名 user_address 下划线转驼峰实体类为 userAddress
strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);//表字段映射类属性,下划线转驼峰 如:表字段 user_id 下划线转驼峰实体类属性 userId
//4.表自动填充 (mp自动填充,在添加数据的时候,创建时间和修改时间,是在灭) ===此处不需要可省略===
// List list = new ArrayList<>();
// TableFill create_time = new TableFill("create_time", FieldFill.INSERT);
// TableFill update_time = new TableFill("update_time", FieldFill.INSERT_UPDATE);
// list.add(create_time);
// list.add(update_time);
// strategyConfig.setTableFillList(list);//设置表自动填充
autoGenerator.setStrategy(strategyConfig);
// 5. 配置模板引擎
// 默认采用velocity模板
//autoGenerator.setTemplateEngine(new VelocityTemplateEngine());
//6.执行生成代码
autoGenerator.execute();
System.err.println("代码生成完成");
}
}
测试环境:
SpringBoot、Mybatis Plus、MySQL
测试数据库表:
-- 用户表
create table User(
userid int primary key auto_increment comment '用户主键ID',
userName varchar(40) comment '用户名',
adress_Id int comment '用户地址表主键ID'
)
-- 用户地址表
create table User_Address(
addressId int primary key auto_increment comment '地址主键ID',
address varchar(200) comment '具体地址'
)
生成代码结构:
大功告成!
评论