0
点赞
收藏
分享

微信扫一扫

MybatisPlus代码自动生成工具类

醉东枫 2022-01-09 阅读 31

实现步骤

  1. 创建数据库表
  2. 引入依赖
  3. 修改代码

在 mysql 数据库中创建一张测试表

CREATE TABLE `ums_member` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `username` varchar(64) DEFAULT NULL,
  `password` varchar(64) DEFAULT NULL,
  `icon` varchar(500) DEFAULT NULL COMMENT '头像',
  `email` varchar(100) DEFAULT NULL COMMENT '邮箱',
  `nick_name` varchar(200) DEFAULT NULL COMMENT '昵称',
  `note` varchar(500) DEFAULT NULL COMMENT '备注信息',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `login_time` datetime DEFAULT NULL COMMENT '最后登录时间',
  `status` int(1) DEFAULT '1' COMMENT '帐号启用状态:0->禁用;1->启用',
  PRIMARY KEY (`id`),
  UNIQUE KEY `un_name` (`username`) USING BTREE COMMENT '用户名唯一'
) ENGINE=InnoDB AUTO_INCREMENT=61 DEFAULT CHARSET=utf8 COMMENT='后台用户表';

在 pom.xml 文件中引入如下依赖

	<!--代码生成器配置-->
	<!-- generate -->
	<dependency>
	    <groupId>mysql</groupId>
	    <artifactId>mysql-connector-java</artifactId>
	    <version>8.0.22</version>
	</dependency>
	
	<dependency>
	    <groupId>org.projectlombok</groupId>
	    <artifactId>lombok</artifactId>
	    <version>1.18.16</version>
	</dependency>
	
	<dependency>
	    <groupId>com.baomidou</groupId>
	    <artifactId>mybatis-plus-boot-starter</artifactId>
	    <version>3.0.5</version>
	</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-generator</artifactId>
	    <version>3.4.1</version>
	</dependency>

对代码按需修改

package com.july.generator;

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

import java.io.File;
import java.util.ArrayList;

public class Generator {

	public static void main(String[] args) {
		// 构建一个代码生成对象
		AutoGenerator mpg = new AutoGenerator();

		// 1. 全局配置
		GlobalConfig gc = new GlobalConfig();

		String separator = File.separator;
		// 生成代码的磁盘存放路径
		gc.setOutputDir("D:\\projtest-ums\\src\\main\\java");
		gc.setAuthor("july8888");
		gc.setOpen(false);//打开目录
		gc.setFileOverride(true);//是否覆盖
		gc.setServiceName("%sService");//去Service的I前缀。
		gc.setIdType(IdType.ID_WORKER);
		gc.setDateType(DateType.ONLY_DATE);
		gc.setSwagger2(false);

		mpg.setGlobalConfig(gc);

		DataSourceConfig dsc = new DataSourceConfig();
		dsc.setUrl("jdbc:mysql://localhost:3306/dongbao-mall?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai");
		dsc.setDriverName("com.mysql.cj.jdbc.Driver");
		dsc.setUsername("root");
		dsc.setPassword("root");
		dsc.setDbType(DbType.MYSQL);

		mpg.setDataSource(dsc);

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

		pc.setParent("com.july");
		pc.setEntity("entity");
		pc.setMapper("mapper");
		pc.setController("controller");

		mpg.setPackageInfo(pc);

		// 策略配置
		StrategyConfig strategy = new StrategyConfig();
		strategy.setInclude("ums_member");//表名
		strategy.setNaming(NamingStrategy.underline_to_camel);// 下划线转他驼峰
		strategy.setColumnNaming(NamingStrategy.underline_to_camel);// 列 下划线转脱发
		strategy.setEntityLombokModel(true);//lombok 开启
		strategy.setLogicDeleteFieldName("deleted");

		// 自动填充
		TableFill gmtCreate = new TableFill("create_time",FieldFill.INSERT);
		TableFill gmtModify = new TableFill("update_time",FieldFill.INSERT_UPDATE);
		ArrayList<TableFill> tableFills = new ArrayList<TableFill>();
		tableFills.add(gmtCreate);
		tableFills.add(gmtModify);

		strategy.setTableFillList(tableFills);

		//乐观锁
		strategy.setVersionFieldName("version");

		// restcontroller
		strategy.setRestControllerStyle(true);
		strategy.setControllerMappingHyphenStyle(true);// localhost:xxx/hello_2

		mpg.setStrategy(strategy);

		mpg.execute();
	}
}

举报

相关推荐

0 条评论