Mybatis-Plus代码生成器(新) 两步到位

具体参数看Mybatis-Plus官网

代码生成器配置新 | MyBatis-Plus (baomidou.com)

一、导入依赖

    <dependencies>
        <!--mybatis-plus代码生成器-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.5.3.1</version>
        </dependency>
        <!--mybatis-plus代码生成器所需模板-->
        <!-- https://mvnrepository.com/artifact/org.freemarker/freemarker -->
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.32</version>
        </dependency>
    </dependencies>

二、编写代码

package org.springblade.seller;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import com.baomidou.mybatisplus.generator.fill.Column;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springframework.stereotype.Component;

import java.util.Collections;

/**
 * @Author gys619
 * @Date: 2023/04/10
 * @Description mybatis-plus 代码生成器
 */
@Slf4j
public class AutoTest {
	//测试数据库
	private static String TEST = "";
	private static String TEST_USERNAME = "";
	private static String TEST_PASSWORD = "";

	//表名
	private static String DATA_BASE = "blade_xxxxx";
	//全局输入路径  位置精确到: main/java就行
	private static String GLOBAL_PATH = "D:\\xxx\\src\\main\\java";
	//实体类自定义路径 位置精确到:具体包路径
	private static String ENTITY_PATH = "D:\\xxx\\src\\main\\java\\org\\springblade\\seller\\business\\entity";
	//作者
	private static String AUTHOR = "gys619";

	public static void main(String[] args) {
		//连接
		FastAutoGenerator.create("jdbc:mysql://"+TEST+"/bladex?useSSL=false&useUnicode=true&characterEncoding=utf-8" +
				"&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true" +
				"&tinyInt1isBit=false&allowMultiQueries=true&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true",
			TEST_USERNAME,
			TEST_PASSWORD)

			// 全局配置
			.globalConfig(builder -> {
				builder
					.enableSwagger() // 是否启用swagger注解
					.author(AUTHOR) // 作者名称
					.dateType(DateType.ONLY_DATE) // 时间策略
					.commentDate("yyyy-MM-dd") // 注释日期
					.outputDir(GLOBAL_PATH) // 输出目录 快捷键: CTRL+SHIFT+C
					.disableOpenDir(); // 生成后禁止打开所生成的系统目录
			})

			// 包配置
			.packageConfig(builder -> {
				builder
					.parent("org.springblade.seller") //父包名 快捷键:CTRL+SHIFT+ALT+C
					.moduleName("") // 模块包名 空:当前包下
					.entity("business.entity") // 实体类包名
					.service("service") // service包名
					.serviceImpl("service.impl") // serviceImpl包名
					.mapper("mapper") // mapper包名
					.xml("mapper") // mapper包名
//					.pathInfo(Collections.singletonMap(OutputFile.xml, "D:\\work\\blade-service\\blade-electric\\src\\main\\resources")) // xml位置(还可自定义配置entity,service等位置)
					//实体类自定义位置 :精确到包
					.pathInfo(Collections.singletonMap(OutputFile.entity,ENTITY_PATH ))
					.controller("controller"); // controller包名

			})

			// 策略配置
			.strategyConfig(builder -> {
				builder
					.addTablePrefix("blade_") // 增加过滤表前缀
//					.addTableSuffix("_db") // 增加过滤表后缀
//					.addFieldPrefix("t_") // 增加过滤字段前缀
//					.addFieldSuffix("_field") // 增加过滤字段后缀
					.addInclude(DATA_BASE) // 表匹配

					// Entity 策略配置
					.entityBuilder()
					.enableLombok() // 开启lombok
					.enableChainModel() // 链式
					.enableRemoveIsPrefix() // 开启boolean类型字段移除is前缀
					.enableTableFieldAnnotation() //开启生成实体时生成的字段注解
//					.versionColumnName("version") // 乐观锁数据库字段
//					.versionPropertyName("version") // 乐观锁实体类名称
					.logicDeleteColumnName("is_deleted") // 逻辑删除数据库中字段名
					.logicDeletePropertyName("deleted") // 逻辑删除实体类中的字段名
					.naming(NamingStrategy.underline_to_camel) // 表名 下划线 -》 驼峰命名
					.columnNaming(NamingStrategy.underline_to_camel) // 字段名 下划线 -》 驼峰命名
					.idType(IdType.ASSIGN_ID) // 主键生成策略 雪花算法生成id
					.formatFileName("%s") // Entity 文件名称
					.addTableFills(new Column("create_time", FieldFill.INSERT)) // 表字段填充
					.addTableFills(new Column("update_time", FieldFill.INSERT_UPDATE)) // 表字段填充
					.enableColumnConstant()
					.enableActiveRecord()
					.superClass("org.springblade.core.mp.base.BaseEntity")//继承父类

					// Controller 策略配置
					.controllerBuilder()
					.enableRestStyle() // 开启@RestController
					.formatFileName("%sController") // Controller 文件名称

					// Service 策略配置
					.serviceBuilder()
					.formatServiceFileName("I%sService") // Service 文件名称
					.formatServiceImplFileName("%sServiceImpl") // ServiceImpl 文件名称
					.superServiceClass(IService.class)//service接口父类
					.superServiceImplClass(BaseServiceImpl.class)//service实现类父类

					// Mapper 策略配置
					.mapperBuilder()
//					.enableMapperAnnotation() // 开启@Mapper
					.enableBaseColumnList() // 启用 columnList (通用查询结果列)
					.enableBaseResultMap() // 启动resultMap
					.formatMapperFileName("%sMapper") // Mapper 文件名称
					.formatXmlFileName("%sMapper")
					.superClass(BaseMapper.class); // Xml 文件名称

			})
			//模板引擎
			.templateEngine(new FreemarkerTemplateEngine())
			.execute(); // 执行
		log.info("【检查实体类】DATA_BASE={}",DATA_BASE);
	}


}

三、问题

Exception in thread "main" java.lang.NoSuchFieldError: xxxx

等问题 是Maven依赖包问题, 换个版本

比如:

Exception in thread "main" java.lang.NoSuchFieldError: OSCAR

换以下依赖

        <!--mybatis-plus代码生成器-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.5.3.1</version>
        </dependency>
        <!--mybatis-plus代码生成器所需模板-->
        <!-- https://mvnrepository.com/artifact/org.freemarker/freemarker -->
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.32</version>
        </dependency>

代码执行选择freemarker

            //模板引擎
			.templateEngine(new FreemarkerTemplateEngine())
			.execute(); // 执行

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值