2022/5/25 Mybatis-Plus代码生成器(mybatis-plus-generat)配置模板
目录
1.导入依赖
2.编写配置类
3.运行配置类
4.结果
4.1 controller层
4.2 entity层
4.3 Mapper层
4.4 Mapper.xml层
4.5 Service层
4.6 ServiceImp层
1.导入依赖
com.baomidou mybatis-plus-boot-starter 3.5.1 com.baomidou mybatis-plus-generator 3.5.2 org.apache.velocity velocity-engine-core 2.3
2.编写配置类
package com.hzf.books;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.querys.MySqlQuery;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.fill.Column;
import com.baomidou.mybatisplus.generator.fill.Property;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;/*** @program: 梦进大厂* @description: mybatis-plus-generator代码生成器* @author: Mr.Abcdzzr* @create: 2022-05-25 23:12**/
public class CodeGenerator {public static void main(String[] args) {/*数据库配置*///数据库改成自己的DataSourceConfig dataSourceConfig =new DataSourceConfig.Builder("jdbc:mysql://localhost:3306/bookdb?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true","root","123123").dbQuery(new MySqlQuery()).build();/*创建一共代码生成器对象*/AutoGenerator generator = new AutoGenerator(dataSourceConfig);//String property = System.getProperty(scanner("请输入项目路径"));/*全局配置*/GlobalConfig globalConfig = new GlobalConfig.Builder().fileOverride().outputDir(scanner("请输入你的项目路径") + "/src/main/java").author("HuangZhuFang").disableOpenDir()//.enableKotlin()//.enableSwagger().dateType(DateType.TIME_PACK).commentDate("yyyy-MM-dd").build();generator.global(globalConfig);/*包配置(PackageConfig)*/PackageConfig packageConfig = new PackageConfig.Builder().parent("com.hzf.books") //这里改成自己对应的包名//.moduleName("blog").entity("entity").service("service").serviceImpl("service.impl").mapper("mapper").xml("mapper").controller("controller")//.other("other")//.pathInfo(Collections.singletonMap(OutputFile.mapper, "D://"))//.pathInfo(Collections.singletonMap(OutputFile.xml, "D://")).build();generator.packageInfo(packageConfig);TemplateConfig templateConfig = new TemplateConfig.Builder().disable(TemplateType.ENTITY).entity("/templates/entity.java").service("/templates/service.java").serviceImpl("/templates/serviceImpl.java").mapper("/templates/mapper.java").xml("/templates/mapper.xml").controller("/templates/controller.java").build();generator.template(templateConfig);/*策略配置*/StrategyConfig strategyConfig = new StrategyConfig.Builder().enableCapitalMode().enableSkipView().disableSqlFilter()//.likeTable(new LikeTable("USER")).addInclude(getTables(scanner("请输入表名,多个英文逗号分隔?所有输入 all"))).addTablePrefix("book_") //去掉表中的前缀//.addFieldSuffix("_flag")/* .entityBuilder().controllerBuilder().mapperBuilder().serviceBuilder()*/.build();strategyConfig.entityBuilder()//.superClass(BaseEntity.class).disableSerialVersionUID().enableChainModel().enableLombok().enableRemoveIsPrefix().enableTableFieldAnnotation().enableActiveRecord().versionColumnName("version").versionPropertyName("version").logicDeleteColumnName("deleted").logicDeletePropertyName("deleted").naming(NamingStrategy.underline_to_camel) //开启驼峰命名映射表中字段.columnNaming(NamingStrategy.underline_to_camel)//.addSuperEntityColumns("id", "created_by", "created_time", "updated_by", "updated_time")//.addIgnoreColumns("age").addTableFills(new Column("create_time", FieldFill.INSERT)).addTableFills(new Property("update_time", FieldFill.INSERT_UPDATE)).idType(IdType.AUTO).formatFileName("%s").build();strategyConfig.controllerBuilder()//.superClass(BaseController.class)//.enableHyphenStyle().enableRestStyle().formatFileName("%sController").build();strategyConfig.serviceBuilder()//.superServiceClass(BaseService.class)// .superServiceImplClass(BaseServiceImpl.class).formatServiceFileName("%sService").formatServiceImplFileName("%sServiceImp").build();strategyConfig.mapperBuilder().superClass(BaseMapper.class)//.enableMapperAnnotation()//.enableBaseResultMap()//.enableBaseColumnList()//.cache(MyMapperCache.class).formatMapperFileName("%sMapper").formatXmlFileName("%sMapper").build();generator.strategy(strategyConfig);/*执行代码生成器*/generator.execute();}// 处理 all 情况protected static List getTables(String tables) {return "all".equals(tables) ? Collections.emptyList() : Arrays.asList(tables.split(","));}/*** * 读取控制台内容*
*/public static String scanner(String tip) {Scanner scanner = new Scanner(System.in);StringBuilder help = new StringBuilder();help.append("请输入" + tip + ":");System.out.println(help.toString());if (scanner.hasNext()) {String ipt = scanner.next();if (StringUtils.isNotBlank(ipt)) {return ipt;}}throw new MybatisPlusException("请输入正确的" + tip + "!");}
}
3.运行配置类
请输入请输入你的项目路径:
D:\黄朱方\books
请输入请输入表名,多个英文逗号分隔?所有输入 all:
all
23:19:12.165 [main] DEBUG com.baomidou.mybatisplus.generator.AutoGenerator - ==========================准备生成文件...==========================
23:19:12.193 [main] WARN org.apache.velocity.deprecation - configuration key 'file.resource.loader.unicode' has been deprecated in favor of 'resource.loader.file.unicode'
23:19:12.194 [main] WARN org.apache.velocity.deprecation - configuration key 'file.resource.loader.class' has been deprecated in favor of 'resource.loader.file.class'
23:19:12.381 [main] DEBUG com.baomidou.mybatisplus.generator.config.querys.MySqlQuery - 执行SQL:show table status WHERE 1=1
23:19:12.406 [main] DEBUG com.baomidou.mybatisplus.generator.config.querys.MySqlQuery - 返回记录数:2,耗时(ms):25
23:19:12.460 [main] DEBUG com.baomidou.mybatisplus.generator.config.querys.MySqlQuery - 执行SQL:show full fields from `book_info`
23:19:12.462 [main] WARN com.baomidou.mybatisplus.generator.IDatabaseQuery$DefaultDatabaseQuery - 当前表[book_info]的主键为自增主键,会导致全局主键的ID类型设置失效!
23:19:12.470 [main] DEBUG com.baomidou.mybatisplus.generator.config.querys.MySqlQuery - 返回记录数:10,耗时(ms):10
23:19:12.508 [main] DEBUG com.baomidou.mybatisplus.generator.config.querys.MySqlQuery - 执行SQL:show full fields from `users`
23:19:12.509 [main] WARN com.baomidou.mybatisplus.generator.IDatabaseQuery$DefaultDatabaseQuery - 当前表[users]的主键为自增主键,会导致全局主键的ID类型设置失效!
23:19:12.509 [main] DEBUG com.baomidou.mybatisplus.generator.config.querys.MySqlQuery - 返回记录数:7,耗时(ms):1
23:19:12.523 [main] DEBUG org.apache.velocity - Initializing Velocity, Calling init()...
23:19:12.523 [main] DEBUG org.apache.velocity - Starting Apache Velocity v2.3
23:19:12.526 [main] DEBUG org.apache.velocity - Default Properties resource: org/apache/velocity/runtime/defaults/velocity.properties
23:19:12.537 [main] DEBUG org.apache.velocity - ResourceLoader instantiated: org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
23:19:12.538 [main] DEBUG org.apache.velocity - initialized (class org.apache.velocity.runtime.resource.ResourceCacheImpl) with class java.util.Collections$SynchronizedMap cache map.
23:19:12.539 [main] DEBUG org.apache.velocity - Loaded System Directive: org.apache.velocity.runtime.directive.Stop
23:19:12.540 [main] DEBUG org.apache.velocity - Loaded System Directive: org.apache.velocity.runtime.directive.Define
23:19:12.540 [main] DEBUG org.apache.velocity - Loaded System Directive: org.apache.velocity.runtime.directive.Break
23:19:12.541 [main] DEBUG org.apache.velocity - Loaded System Directive: org.apache.velocity.runtime.directive.Evaluate
23:19:12.541 [main] DEBUG org.apache.velocity - Loaded System Directive: org.apache.velocity.runtime.directive.Macro
23:19:12.542 [main] DEBUG org.apache.velocity - Loaded System Directive: org.apache.velocity.runtime.directive.Parse
23:19:12.543 [main] DEBUG org.apache.velocity - Loaded System Directive: org.apache.velocity.runtime.directive.Include
23:19:12.544 [main] DEBUG org.apache.velocity - Loaded System Directive: org.apache.velocity.runtime.directive.Foreach
23:19:12.559 [main] DEBUG org.apache.velocity.parser - Created '20' parsers.
23:19:12.573 [main] DEBUG org.apache.velocity.macro - "velocimacro.library.path" is not set. Trying default library: velocimacros.vtl
23:19:12.574 [main] DEBUG org.apache.velocity.loader.file - Could not load resource 'velocimacros.vtl' from ResourceLoader org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
23:19:12.574 [main] DEBUG org.apache.velocity.macro - Default library velocimacros.vtl not found. Trying old default library: VM_global_library.vm
23:19:12.574 [main] DEBUG org.apache.velocity.loader.file - Could not load resource 'VM_global_library.vm' from ResourceLoader org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
23:19:12.574 [main] DEBUG org.apache.velocity.macro - Old default library VM_global_library.vm not found.
23:19:12.574 [main] DEBUG org.apache.velocity.macro - allowInline = true: VMs can be defined inline in templates
23:19:12.574 [main] DEBUG org.apache.velocity.macro - allowInlineToOverride = false: VMs defined inline may NOT replace previous VM definitions
23:19:12.574 [main] DEBUG org.apache.velocity.macro - allowInlineLocal = false: VMs defined inline will be global in scope if allowed.
23:19:12.574 [main] DEBUG org.apache.velocity.macro - autoload off: VM system will not automatically reload global library macros
23:19:12.594 [main] DEBUG org.apache.velocity.loader - ResourceManager: found /templates/entity.java.vm with loader org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
23:19:12.607 [main] DEBUG org.apache.velocity.loader - ResourceManager: found /templates/mapper.java.vm with loader org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
23:19:12.612 [main] DEBUG org.apache.velocity.loader - ResourceManager: found /templates/mapper.xml.vm with loader org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
23:19:12.618 [main] DEBUG org.apache.velocity.loader - ResourceManager: found /templates/service.java.vm with loader org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
23:19:12.623 [main] DEBUG org.apache.velocity.loader - ResourceManager: found /templates/serviceImpl.java.vm with loader org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
23:19:12.630 [main] DEBUG org.apache.velocity.loader - ResourceManager: found /templates/controller.java.vm with loader org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
23:19:12.637 [main] DEBUG org.apache.velocity.loader - ResourceManager: found /templates/entity.java.vm with loader org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
23:19:12.643 [main] DEBUG org.apache.velocity.loader - ResourceManager: found /templates/mapper.java.vm with loader org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
23:19:12.648 [main] DEBUG org.apache.velocity.loader - ResourceManager: found /templates/mapper.xml.vm with loader org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
23:19:12.653 [main] DEBUG org.apache.velocity.loader - ResourceManager: found /templates/service.java.vm with loader org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
23:19:12.658 [main] DEBUG org.apache.velocity.loader - ResourceManager: found /templates/serviceImpl.java.vm with loader org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
23:19:12.662 [main] DEBUG org.apache.velocity.loader - ResourceManager: found /templates/controller.java.vm with loader org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
23:19:12.666 [main] DEBUG com.baomidou.mybatisplus.generator.AutoGenerator - ==========================文件生成完成!!!==========================进程已结束,退出代码为 0
4.结果

4.1 controller层
package com.hzf.books.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** * 前端控制器*
** @author HuangZhuFang* @since 2022-05-25*/
@RestController
@RequestMapping("/info")
public class InfoController {}
4.2 entity层
package com.hzf.books.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;/*** * *
** @author HuangZhuFang* @since 2022-05-25*/
@Getter
@Setter
@Accessors(chain = true)
@TableName("book_info")
public class Info extends Model {/*** 图书id*/@TableId(value = "book_id", type = IdType.AUTO)private Integer bookId;/*** 图书编号*/@TableField("book_code")private String bookCode;/*** 图书名称*/@TableField("book_name")private String bookName;/*** 图书类型(1、小说、2、文学、3、传记、4、艺术、5、少儿、6、经济、7、管理、8、科技)*/@TableField("book_type")private Integer bookType;/*** 图书作者*/@TableField("book_atuthor")private String bookAtuthor;/*** 出版社*/@TableField("publish_press")private String publishPress;/*** 是否借阅(1、已借阅0、未借阅*/@TableField("is_borrowed")private Integer isBorrowed;/*** 创建人*/@TableField("created_by")private String createdBy;/*** 创建时间*/@TableField("creation_time")private LocalDateTime creationTime;/*** 最后更新时间*/@TableField("last_update_time")private LocalDateTime lastUpdateTime;@Overridepublic Serializable pkVal() {return this.bookId;}}
4.3 Mapper层
package com.hzf.books.mapper;import com.hzf.books.entity.Info;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;/*** * Mapper 接口*
** @author HuangZhuFang* @since 2022-05-25*/
public interface InfoMapper extends BaseMapper {}
4.4 Mapper.xml层
4.5 Service层
package com.hzf.books.service;
import com.hzf.books.entity.Info;
import com.baomidou.mybatisplus.extension.service.IService;/*** * 服务类*
** @author HuangZhuFang* @since 2022-05-25*/
public interface InfoService extends IService {}
4.6 ServiceImp层
package com.hzf.books.service.impl;import com.hzf.books.entity.Info;
import com.hzf.books.mapper.InfoMapper;
import com.hzf.books.service.InfoService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;/*** * 服务实现类*
** @author HuangZhuFang* @since 2022-05-25*/
@Service
public class InfoServiceImp extends ServiceImpl implements InfoService {}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
