MybatisPlus——全网配置最全的代码生成器(mybatis plus 代码生成器)

  本篇文章为你整理了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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: