本篇文章为你整理了MybatisPlus——全网配置最全的代码生成器(mybatis plus 代码生成器)的详细内容,包含有mybatisplus代码生成器 最佳 mybatis plus 代码生成器 mybatis-plus 代码生成 mybatis代码生成工具 MybatisPlus——全网配置最全的代码生成器,希望能帮助你了解 MybatisPlus——全网配置最全的代码生成器。
还在为项目前期编写代码而熬夜吗?MybatisPlus一键生成代码,直接效率翻倍。妈妈再也不用担心我熬夜了!
模板引擎配置(TemplateEngine)
默认 Velocity ;可选模板引擎 Beetl 或 Freemarker。(二选一即可)
id BIGINT(20) NOT NULL COMMENT 主键ID,
name VARCHAR(30) NULL DEFAULT NULL COMMENT 姓名,
age INT(11) NULL DEFAULT NULL COMMENT 年龄,
email VARCHAR(50) NULL DEFAULT NULL COMMENT 邮箱,
version INT(10) NOT NULL DEFAULT 1 COMMIT 乐观锁版本号,
DELETED INT(10) NOT NULL DEFAULT 0 COMMIT 逻辑删除,
CREATE_TIME DATE COMMIT 创建时间,
modify_time DATE COMMIT 更新时间,
PRIMARY KEY (id)
DELETE FROM user;
INSERT INTO user (id, name, age, email) VALUES
(1, 工藤新一,test1@baomidou.com),
(2, 毛利兰,est2@baomidou.com),
(3, 柯南, 28, test3@baomidou.com),
(4, 灰原哀, 21, test4@baomidou.com),
(5, 工藤有希子, 24, test5@baomidou.com);
groupId org.springframework.boot /groupId
artifactId spring-boot-starter-web /artifactId
/dependency
!--SpringBootTest--
dependency
groupId org.springframework.boot /groupId
artifactId spring-boot-starter-test /artifactId
scope test /scope
/dependency
!--swagger--
dependency
groupId io.swagger /groupId
artifactId swagger-annotations /artifactId
version 1.6.3 /version
/dependency
!--lombok--
dependency
groupId org.projectlombok /groupId
artifactId lombok /artifactId
/dependency
!--mysql 驱动--
dependency
groupId mysql /groupId
artifactId mysql-connector-java /artifactId
version 8.0.26 /version
/dependency
!--mybatis-plus--
dependency
groupId com.baomidou /groupId
artifactId mybatis-plus-boot-starter /artifactId
version 3.5.2 /version
/dependency
!--mybatis-plus-generator 生成器--
dependency
groupId com.baomidou /groupId
artifactId mybatis-plus-generator /artifactId
version 3.5.2 /version
/dependency
!--velocity--
dependency
groupId org.apache.velocity /groupId
artifactId velocity-engine-core /artifactId
version 2.3 /version
/dependency
!--以下两个引擎模板保留一个即可,看个人爱好选择--
!--freemarker引擎模板--
dependency
groupId org.freemarker /groupId
artifactId freemarker /artifactId
version 2.3.31 /version
/dependency
!--beetl引擎模板--
dependency
groupId com.ibeetl /groupId
artifactId beetl /artifactId
version 3.8.1.RELEASE /version
/dependency
/dependencies
在测试类里写入主方法并修改参数,运行即可【配置已经封装好了】
public static void main(String[] args) {
//这里按着给的注解修改参数即可
//手动配置数据源
String url="jdbc:mysql://localhost:3306/mybatis_plus?serverTimezone=UTC useUnicode=true characterEncoding=utf-8"; //注意修改数据库名
String name="root";
String password="123456";
//数据库表的设置
List String listTable = Arrays.asList("user"); //设置需要自动代码生成的表名
List String listTableSuffix = Arrays.asList("_b"); //设置 过滤 表的后缀
List String listTablePrefix = Arrays.asList("t_","c_"); //设置 过滤 表的后缀
//基本信息
String author = "柯南"; //作者
String parent = "com"; //父包名
String module = "example"; //模块包名
builder.author(author) // 设置作者名
.outputDir(System.getProperty("user.dir") + "/src/main/java") //设置输出路径:项目的 java 目录下【System.getProperty("user.dir")意思是获取到项目所在的绝对路径】
.commentDate("yyyy-MM-dd hh:mm:ss") //注释日期
.dateType(DateType.ONLY_DATE) //定义生成的实体类中日期的类型 TIME_PACK=LocalDateTime;ONLY_DATE=Date;
.fileOverride() //覆盖之前的文件
.enableSwagger() //开启 swagger 模式
.disableOpenDir(); //禁止打开输出目录,默认打开
//3、包配置
.packageConfig(builder - {
builder.parent(parent) // 设置父包名
.moduleName(module) //设置模块包名
.entity("entity") //pojo 实体类包名
.service("service") //Service 包名
.serviceImpl("service.impl") // ***ServiceImpl 包名
.mapper("mapper") //Mapper 包名
.xml("mapper.xml") //Mapper XML 包名
.controller("controller") //Controller 包名
.other("config") //自定义包名(一般不在这里生成,而是后面编写的时候自己建包)
.pathInfo(Collections.singletonMap(OutputFile.mapper.xml, System.getProperty("user.dir")+"/src/main/resources/mapper")); //配置 mapper.xml 路径信息:项目的 resources 目录下
//4、策略配置
.strategyConfig(builder - {
builder
.enableCapitalMode() //开启大写命名
.enableSkipView() //创建实体类的时候跳过视图
.addInclude(listTable) // 设置需要生成的数据表名
.addTableSuffix(listTableSuffix) //设置 过滤 表的后缀
.addTablePrefix(listTablePrefix) // 设置 过滤 表的前缀
//4.1、实体类策略配置
.entityBuilder()
.enableChainModel() //开启链式模型
//.disableSerialVersionUID() //默认是开启实体类序列化,可以手动disable使它不序列化。由于项目中需要使用序列化就按照默认开启了
.enableTableFieldAnnotation() // 开启生成实体时生成字段注解
.enableLombok() //开启 Lombok
.versionColumnName("version") //乐观锁字段名(数据库)
.versionPropertyName("version") //乐观锁属性名(实体)
.logicDeleteColumnName("deleted") //逻辑删除字段名(数据库)
.logicDeletePropertyName("deleteFlag") //逻辑删除属性名(实体)
.naming(NamingStrategy.underline_to_camel) //数据库表映射到实体的命名策略:默认是下划线转驼峰命。这里可以不设置
.columnNaming(NamingStrategy.underline_to_camel) //数据库表字段映射到实体的命名策略:下划线转驼峰命。(默认是和naming一致,所以也可以不设置)
.addTableFills(
new Column("create_time", FieldFill.INSERT),
new Column("modify_time", FieldFill.INSERT_UPDATE)
) //添加表字段填充,"create_time"字段自动填充为插入时间,"modify_time"字段自动填充为插入修改时间
.idType(IdType.AUTO) //设置主键自增
//4.2、Controller策略配置
.controllerBuilder()
.enableHyphenStyle() //开启驼峰连转字符
.formatFileName("%sController") //格式化 Controller 类文件名称,%s进行匹配表名,如 UserController
.enableRestStyle() //开启生成 @RestController 控制器
//4.3、service 策略配置
.serviceBuilder()
.formatServiceFileName("%sService") //格式化 service 接口文件名称,%s进行匹配表名,如 UserService
.formatServiceImplFileName("%sServiceImpl") //格式化 service 实现类文件名称,%s进行匹配表名,如 UserServiceImpl
//4.4、Mapper策略配置
.mapperBuilder()
.superClass(BaseMapper.class) //设置父类
.enableBaseResultMap() //启用 BaseResultMap 生成
.enableBaseColumnList() //启用 BaseColumnList
.formatMapperFileName("%sMapper") //格式化 mapper 文件名称
.enableMapperAnnotation() //开启 @Mapper 注解
.formatXmlFileName("%sXml") //格式化Xml文件名称
.formatMapperFileName("%sMapper"); //格式化Mapper文件名称
//5、模板
.templateEngine(new VelocityTemplateEngine())
模板引擎配置,默认 Velocity 可选模板引擎 Beetl 或 Freemarker(以下两个引擎用哪个就保留哪个)
.templateEngine(new BeetlTemplateEngine())
.templateEngine(new FreemarkerTemplateEngine())
.templateEngine(new FreemarkerTemplateEngine()) //本人选择了Freemarker
//6、执行
.execute();
代码生成器生成的实体类是用@Setter和@Getter ,没有toString方法和有参、无参构造,所以代码生成后需要手动在实体类上删除@Setter和@Getter ,添加@Data @NoArgsConstructor @AllArgsConstructor
代码生成的实体类时间是Date,如果需要用到自动填充就需要手动将时间的字段改成LocalDateTime类型
以上就是MybatisPlus——全网配置最全的代码生成器(mybatis plus 代码生成器)的详细内容,想要了解更多 MybatisPlus——全网配置最全的代码生成器的内容,请持续关注盛行IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。