睿Rui - 代码生成器

本项目直接使用了一个功能强大的代码生成器 睿Rui,这个代码生成器可以设置项目的目录结构和具体的代码模板, 可以方便的从零生成一个完整的项目,也可以在已有项目结构中生成指定的代码文件。

7.1 项目文件简介

所有内容都在 src/main/resources 下面:

  • lib 目录,代码生成器和数据库驱动 jar 包放到该目录下
    • mysql-connector-java-5.1.49.jar MySQL驱动,当前只提供了MySQL驱动, 自己可以替换版本,连接其他数据库时,将对应的驱动放到当前 lib 目录下, 你可以把自己常用的各种数据库驱动都放在这里。
    • rui-cli.jar 代码生成器
  • mapper-templates 模板文件
    • model.java 普通的实体类模板
    • model-lombok.java 使用 lombok 注解的实体类模板
    • mapper.java Mapper 接口模板
    • mapper.xml Mapper XML 模板
    • service.java Service 接口模板
    • serviceImpl.java Service 接口实现模板
  • project.yaml 代码生成器配置文件

这部分内容需要下载使用,为了方便使用,提供一个压缩包直接下载使用(最新模板从当前项目下载)。

百度网盘
链接:https://pan.baidu.com/s/1uyROE1dgvrp8h-yGG3rR6Q
提取码:an7g

数据库驱动部分提供一些链接,可以根据需要进行下载:

7.2 代码生成器配置 project.yaml

下面通过注释介绍每一项配置的含义或者作用:

  1. # 模板的名字,生成代码的根目录名称
  2. name: mybatis-mapper-demo
  3. # 代码生成的路径,可以使用 SYS 和 ENV 等变量,具体包含的内容和运行环境有关
  4. # user.dir 为当前运行命令的目录,path 不设置时的默认值也是当前路径
  5. # 当 path 路径以 .zip 后缀结尾时,会将生成的目录结构和代码放到压缩包中
  6. #【命令行】可以通过 —o 重新指定位置
  7. path: ${SYS['user.dir']}/
  8. # 模板文件所在路径,默认为相对 path 所在的位置,不设置时和 path 相同
  9. #【命令行】可以通过 —T 重新指定位置
  10. templates: mapper-templates
  11. # 数据库配置
  12. database:
  13. # 数据库连接配置
  14. jdbcConnection:
  15. # 使用方言,默认为 JDBC 方式,可能会取不到表或字段注释
  16. # 后续介绍如何通过字典匹配注释值
  17. #【命令行】可以通过 --jdbc.dialect 覆盖
  18. dialect: MYSQL
  19. # jdbc驱动
  20. #【命令行】可以通过 --jdbc.driver 覆盖
  21. driver: com.mysql.jdbc.Driver
  22. # jdbc连接地址
  23. #【命令行】可以通过 --jdbc.url 覆盖
  24. url: jdbc:mysql://localhost:3306/test?useSSL=false
  25. # 用户名
  26. #【命令行】可以通过 --jdbc.user 覆盖
  27. user: root
  28. # 密码
  29. #【命令行】可以通过 --jdbc.password 覆盖
  30. password: root
  31. # 获取表配置,支持 % 和 _ 模糊匹配,可以配置多个值
  32. # 还有一个支持复杂规则 tableRules 属性后续单独介绍
  33. #【命令行】可以通过 -t table1,table2 覆盖
  34. tables:
  35. - '%'
  36. # 根据类型对字段类型打标签, 可以通过 column.tags.TAG 的 true/false 来判断当前列是否有该标签
  37. # 主要对列进行分类,方便后续模板中的使用
  38. typeTags:
  39. # 示例,针对日期时间设置 jdbcType 标签,生成的代码中,如果有该标签,会指定 jdbcType 的值
  40. jdbcType:
  41. - DATE
  42. - TIME
  43. - TIMESTAMP
  44. # 关键字包装,这里的示例针对 MySQL,不提供默认值,需要根据数据库语法进行设置,其中的 %s 为关键字(表名或列名)
  45. keywordWrap: "`%s`"
  46. # 数据库关键字,列举的关键字会进行包装处理,没有默认值,需要自己配置所有可能的关键字
  47. keywords:
  48. - order
  49. - desc
  50. # 附加属性
  51. #【命令行】可以通过 -AbasePackage=com.company 覆盖或增加新属性
  52. attrs: # 子目录(文件)可以通过 parent.parent...attrs.属性名 可以逐级向上使用属性
  53. # 这里设置了一个基础包名
  54. basePackage: io.mybatis.demo.mybatis
  55. # 子目录(文件)
  56. files:
  57. # 文件名,可以 / 设置多级目录
  58. - name: src/main
  59. # 子目录(文件)
  60. files:
  61. - name: java
  62. files:
  63. # 包,可以多层,名称可以引用当前结构的所有属性,也可以使用 tables 数据表信息
  64. - name: '${project.attrs.basePackage}'
  65. # 设置类型为 package,尽可能都指定,默认会计算,默认为目录。包下面的默认都是包
  66. type: PACKAGE
  67. files:
  68. # 包名
  69. - name: mapper
  70. files:
  71. # 模板文件,下面 iter 对 tables 所有表进行迭代,因此这里的模板会根据表的数量进行循环生成
  72. # 迭代循环时,单个迭代对象的默认名为 it,因此这里的 name 就是表名(类名形式)为前缀的 Mapper 接口
  73. - name: '${it.name.className}Mapper.java'
  74. # 使用的模板名,会从上面配置的 templates 下面查找
  75. # 包含多级目录时,这里可以指定相对 templates 的路径
  76. file: mapper.java
  77. # 可选配置 iter, 迭代的数据对象,当前可选为 tables 为反射的数据库表信息
  78. # iter 值使用 mvel 表达式取值,除 tables 外也可以对当前 yaml 中的集合类型进行迭代,例如 project.files
  79. iter: tables
  80. # 可选配置 iterName,默认值为 it,在模板和上面的 name 中可以使用改变量的值
  81. # iterName: it
  82. # 可选配置 filter, 绑定数据过滤器,使用 mvel 表达式,过滤条件不满足时不执行当前的操作,不生成相应的目录或文件
  83. # filter: tables.size() > 0 # 仅仅是示例,size=0时本身也不会循环
  84. # 可选配置 itFilter,迭代数据过滤器,使用 mvel 表达式,当指定 iter 时,对迭代的数据进行过滤
  85. # 不满足条件时,只忽略当前的 it 数据,下面示例中当表名以 sys 为前缀时生成目录或代码
  86. # iterFilter: it.name.original.o.startsWith("sys")
  87. # 可选配置 enabled,默认 true,当前目录(文件)有效,会生成,设置为 false 时忽略
  88. # enabled: true
  89. # 可选配置 mode,默认值为 OVERRIDE,生成目录或文件时覆盖,可选值为:
  90. # OVERRIDE: 覆盖
  91. # ONCE: 只生成一次,或者如果目录或文件已存在时不生成(目录存在时,子文件也不会生成)
  92. # MERGE: 合并已存在的文件和新生成的文件,需要满足规则才能合并
  93. # mode: OVERRIDE
  94. # 可选配置 times,默认值 1,默认情况下,模板只经过一次变量替换,有时存在多层变量嵌套时,执行多次才能全部替换
  95. # times: 1
  96. - name: model
  97. files:
  98. - name: '${it.name.className}.java'
  99. # 此处有2种模板示例,分别列出来加了注释
  100. file: model.java
  101. # file: model-lombok.java
  102. iter: tables
  103. - name: service
  104. files:
  105. - name: '${it.name.className}Service.java'
  106. file: service.java
  107. iter: tables
  108. - name: impl
  109. files:
  110. - name: '${it.name.className}ServiceImpl.java'
  111. file: serviceImpl.java
  112. iter: tables
  113. - name: resources
  114. files:
  115. - name: mappers
  116. files:
  117. - name: '${it.name.className}Mapper.xml'
  118. iter: tables
  119. file: mapper.xml

在模板的 YAML 配置中,数据库相关的配置定义了生成代码的元数据,files 中的内容定义了项目的结构和生成代码的位置。

变化比较多的配置是具体的一个 files 配置,下面是上面大段注释部分的整理,file 属性说明:

  • name: '${it.name.className}Mapper.java' 模板文件,下面 iter 对 tables 所有表进行迭代,因此这里的模板会根据表的数量进行循环生成; 迭代循环时,单个迭代对象的默认名为 it,因此这里的 name 就是表名(类名形式)为前缀的 Mapper 接口。
  • file: mapper.java 使用的模板名,会从上面配置的 templates 下面查找; 包含多级目录时,这里可以指定相对 templates 的路径。
  • iter: tables: 可选配置 iter, 迭代的数据对象,当前可选为 tables 为反射的数据库表信息; iter 值使用 mvel 表达式取值,除 tables 外也可以对当前 yaml 中的集合类型进行迭代,例如 project.files。
  • iterName: it 可选配置 iterName,默认值为 it,在模板和上面的 name 中可以使用改变量的值。
  • filter: tables.size() > 0 可选配置 filter, 绑定数据过滤器,使用 mvel 表达式,过滤条件不满足时不执行当前的操作,不生成相应的目录或文件。
  • iterFilter: it.name.original.o.startsWith("sys") 可选配置 itFilter,迭代数据过滤器,使用 mvel 表达式,当指定 iter 时,对迭代的数据进行过滤; 不满足条件时,只忽略当前的 it 数据,下面示例中当表名以 sys 为前缀时生成目录或代码。
  • enabled: true 可选配置 enabled,默认 true,当前目录(文件)有效,会生成,设置为 false 时忽略。
  • mode: OVERRIDE 可选配置 mode,默认值为 OVERRIDE,生成目录或文件时覆盖,可选值为:
    • OVERRIDE: 覆盖,默认值
    • ONCE: 只生成一次,或者如果目录或文件已存在时不生成(目录存在时,子文件也不会生成)
    • MERGE: 合并已存在的文件和新生成的文件,需要满足规则才能合并
  • times: 1 可选配置 times,默认值 1,默认情况下,模板只经过一次变量替换,有时存在多层变量嵌套时,执行多次才能全部替换

上面示例中的 iterFilter: it.name.original.o.startsWith("sys") 中的 it.name.original.o 很奇怪,下面模板介绍为什么会这么写。

7.3 模板文件介绍

目前代码模板使用 FreeMarker 模板引擎,点击查看 模板语言参考文档

针对 model 提供了 2 套模板:

  • model.java 普通的实体类模板
  • model-lombok.java 使用 lombok 注解的实体类模板

修改配置文件下面的地方选择想要使用的文档:

  1. # 在 model 包下面
  2. - name: model
  3. files:
  4. # 有实体类代码,类名为表名的类形式
  5. - name: '${it.name.className}.java'
  6. # 此处有2种模板示例,具体类型看上面介绍
  7. file: model.java
  8. # file: model-lombok.java
  9. iter: tables

当使用 lombok 版本的模板时,实体类使用了 @Getter@Setter 注解,代码体中就不需要生成 getter 和 setter 的代码。 如果你想使用 lombok 的 @Data 或其他注解,你可以实现自己的模板(注意 import 相应的类型)。

7.4 ENV 和 SYS 可选值,使用示例

代码生成器配置和模板中都可以使用 ENV 和 SYS 变量,这些变量和运行的环境有关, 代码生成器运行时会输出当前环境的这些信息,想要修改为某些值时可以运行之后查找想要使用的名字。 例如下面展示的部分内容(示例为 macOS):

  1. [main] TRACE Project - SYS可用参数:
  2. [main] TRACE Project - SYS['user.country'] = CN
  3. [main] TRACE Project - SYS['user.home'] = /Users/liuzh
  4. [main] TRACE Project - SYS['user.dir'] = /Users/liuzh/IdeaProjects/rui/core
  5. [main] TRACE Project - ENV可用参数:
  6. [main] TRACE Project - ENV['USER'] = liuzh
  7. [main] TRACE Project - ENV['PWD'] = /Users/liuzh/IdeaProjects/rui/core
  8. [main] TRACE Project - ENV['HOME'] = /Users/liuzh

在模板中使用时,直接参考上面的写法,例如 ${SYS['user.home']}${ENV['HOME']}

7.5 代码生成器 rui-cli.jar

代码生成器提供了一个可执行 jar 文件: rui-cli.jar

后续会提供基于 java swing 的 GUI 客户端,可以通过 UI 简单操作生成代码。

可执行 jar 文件使用方式:

  1. 用法: java -cp "lib/*" io.mybatis.rui.cli.Main [options]
  2. Options:
  3. -p, --project
  4. 代码生成器YAML配置文件
  5. -o, --output
  6. 输出目录,默认使用配置文件中的 path,输出目录如果带 .zip 后缀,就会将生成的代码导出为压缩包
  7. -T, --templates
  8. 模板文件路径,默认和YAML相同位置,或者为当前执行目录的相对位置
  9. --jdbc.dialect
  10. 数据库方言
  11. Possible Values: [JDBC, HSQLDB, ORACLE, DB2, SQLSERVER, MARIADB, MYSQL]
  12. --jdbc.driver
  13. 数据库驱动
  14. --jdbc.url
  15. 数据库URL
  16. --jdbc.user
  17. 数据库用户
  18. --jdbc.password
  19. 数据库密码
  20. -t, --tables
  21. 要获取的表名,支持模糊匹配(%),多个表名用逗号隔开,指定该值后会覆盖配置文件中的值
  22. -A, -attrs
  23. 项目附加属性,会覆盖项目下的 attrs 配置
  24. Syntax: -Akey=value
  25. Default: {}
  26. -h, --help
  27. 显示帮助信息

在上面命令中,推荐 -cp lib/* 使用 lib 目录下面的所有 jar 包,这样当你需要不同的数据库驱动时, 将 JDBC 驱动放到该目录下面即可。

下面演示代码生成器的使用过程。

7.6 使用文档

上面介绍了部分代码生成器的细节,最关键的内容是项目结构和代码模板, 这两部分内容需要理解上面的内容后,根据自己的项目进行设计和模板编写, 一旦编写好,只要项目结构和模板内容不变,这套模板就可以一直使用, 后续变化的地方就是 JDBC连接配置,指定要连的数据库和要获取的表信息, 因此除了代码生成器的初始配置和模板有一点难度外,后续的使用是非常简单的。

接下来我们以当前项目提供的模板为基础,介绍一下如果想应用到自己的项目,该如何修改配置,修改完配置之后如何生成项目结构和代码。

7.6.1 配置适配

7.6.1.1 生成代码的目录

project.yaml 中,path 定义了项目所在的路径(不含项目名), 示例中使用了默认值(不配置时也是改值)${SYS['user.dir']}/, 这个目录和执行代码生成器命令时所在的目录一样,如果是第一次生成项目, 生成到当前目录也没有问题,如果是已经存在的项目, 就需要修改路径让代码可以直接生成到已有项目的目录结构中。

假设项目为 d:/idea-project/cms,cms 是项目名,此时的配置如下:

  1. # 项目名,和真实的 cms 名字对应
  2. name: cms
  3. # 项目所在路径
  4. path: d:/idea-project/

7.6.1.2 数据库配置

数据库连接的配置按照示例修改即可,平时使用时,最常见的变化时 tables 的值。

如果后续生成代码时不想重新生成已存在表的代码,就需要每次指定要生成的表的信息。

例如第一次的时候生成了所有 sys_user, sys_rolesys 开头的表,此时可以配置为:

  1. tables:
  2. - sys%

假设后续要生成某几个表的,可以配置为具体的表名:

  1. tables:
  2. - account
  3. - content
  4. - comments

表名可以写多个,而且每个都可以是具体表名,也可以使用模糊匹配,使用 % 匹配任意个字符,使用 _ 匹配单个字符。

7.6.1.3 包名修改

示例中为了展示 attrs 属性的用法,因此在这里配置了一个 basePackage 属性,这个属性在下面的包名 name 使用了, 根据自己的包名修改这里,例如:com.company.cms,如果你的包和这里结构不一样,可以自己调整 files 适配自己的结构。

7.6.1.4 类名规则

在 mapper 包下面循环生成了每个表对应的 Mapper 接口,这里定义的名称为 '${it.name.className}Mapper.java'表的类名+Mapper 后缀作为接口名,如果你喜欢使用 Dao 后缀,就可以改为 '${it.name.className}Dao.java', 还需要注意修改所有使用(注入)该接口的地址,例如在 serviceImpl.java 模板中:

  1. //省略其他
  2. import ${project.attrs.basePackage}.mapper.${it.name.className}Dao;
  3. //省略其他
  4. @Service
  5. public class ${it.name.className}ServiceImpl extends AbstractService<${it.name.className}, Long, ${it.name.className}Dao> implements ${it.name.className}Service {
  6. }

只要保证模板内容和类型定义保持一致即可。

7.6.2 执行代码生成器

配置完成后,使用下面的命令生成代码:

  1. java -cp "lib/*" io.mybatis.rui.cli.Main -p project.yaml

由于写此文档时使用的 macOS,因此下面的日志文件和这里预设的目录结构不同,后续更新为目录一致的输出

执行命令后,输出日志如下:

  1. [main] TRACE Project - SYS可用参数:
  2. [main] TRACE Project - SYS['gopherProxySet'] = false
  3. #-----------------省略大量 SYS 属性-----------------------
  4. [main] TRACE Project - SYS['http.proxyPort'] = 8889
  5. [main] TRACE Project - ENV可用参数:
  6. [main] TRACE Project - ENV['JAVA_ARCH'] = x86_64
  7. #-----------------省略大量 ENV 属性-----------------------
  8. [main] TRACE Project - ENV['_'] = /usr/bin/java
  9. [main] DEBUG Project - 执行程序路径: /Users/liuzh/IdeaProjects/generator-cmd
  10. [main] DEBUG Project - basedir变量: /Users/liuzh/IdeaProjects/generator-cmd
  11. [main] DEBUG Project - yamlDir变量: /Users/liuzh/IdeaProjects/generator-cmd
  12. [main] DEBUG Database - 获取数据库信息
  13. [2021-05-30 17:40:37] [DEBUG] rui.pJ: Use [Hutool Console Logging] Logger As Default.
  14. [main] DEBUG Database - 获取表: role
  15. [main] TRACE Database - 记录列: id
  16. [main] TRACE Database - 记录列: role_name
  17. [main] DEBUG Database - 获取表: user
  18. [main] TRACE Database - 记录列: id
  19. [main] TRACE Database - 记录列: user_name
  20. [main] TRACE Database - 记录列: user_age
  21. [main] TRACE Database - 记录列: address
  22. [main] DEBUG Database - 获取表: user_role
  23. [main] TRACE Database - 记录列: id
  24. [main] TRACE Database - 记录列: user_id
  25. [main] TRACE Database - 记录列: role_id
  26. [main] DEBUG Database - 通过 SQL 获取表的注释信息
  27. [main] DEBUG Database - 执行 SQL: SELECT TABLE_NAME, TABLE_COMMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME in ( 'user_role','role','user' )
  28. [main] DEBUG Database - 表: role - 角色
  29. [main] DEBUG Database - 表: user - 用户
  30. [main] DEBUG Database - 表: user_role - 用户和角色关联
  31. [main] DEBUG Context - 生成项目路径: /Users/liuzh/IdeaProjects/
  32. [main] DEBUG Context - 读取模板路径: mapper-templates
  33. [main] DEBUG Generator - 已存在目录: /Users/liuzh/IdeaProjects/cms
  34. [main] DEBUG Generator - 已存在目录: /Users/liuzh/IdeaProjects/cms/src/main
  35. [main] DEBUG Generator - 已存在目录: /Users/liuzh/IdeaProjects/cms/src/main/java
  36. [main] DEBUG Generator - 已存在包: io.mybatis.demo.mybatis
  37. [main] DEBUG Generator - 已存在包: mapper
  38. [main] DEBUG Generator - 初次创建文件: RoleMapper.java
  39. [main] DEBUG Generator - 初次创建文件: UserMapper.java
  40. [main] DEBUG Generator - 初次创建文件: UserRoleMapper.java
  41. [main] DEBUG Generator - 已存在包: model
  42. [main] DEBUG Generator - 初次创建文件: Role.java
  43. [main] DEBUG Generator - 初次创建文件: User.java
  44. [main] DEBUG Generator - 初次创建文件: UserRole.java
  45. [main] DEBUG Generator - 已存在包: service
  46. [main] DEBUG Generator - 初次创建文件: RoleService.java
  47. [main] DEBUG Generator - 初次创建文件: UserService.java
  48. [main] DEBUG Generator - 初次创建文件: UserRoleService.java
  49. [main] DEBUG Generator - 已存在包: impl
  50. [main] DEBUG Generator - 初次创建文件: RoleServiceImpl.java
  51. [main] DEBUG Generator - 初次创建文件: UserServiceImpl.java
  52. [main] DEBUG Generator - 初次创建文件: UserRoleServiceImpl.java
  53. [main] DEBUG Generator - 已存在目录: /Users/liuzh/IdeaProjects/cms/src/main/resources
  54. [main] DEBUG Generator - 已存在目录: /Users/liuzh/IdeaProjects/cms/src/main/resources/mappers
  55. [main] DEBUG Generator - 初次创建文件: RoleMapper.xml
  56. [main] DEBUG Generator - 初次创建文件: UserMapper.xml
  57. [main] DEBUG Generator - 初次创建文件: UserRoleMapper.xml

rui-cli.jar 中包含了多个可以覆盖默认配置的参数,大部分参数仍然建议在配置文件中指定。

如果想要生成的代码导出为 ZIP 压缩包,只需要在上面的命令后面增加 -o cms.zip 即可在执行的目录中生成一个 cms.zip 压缩包文件:

  1. java -cp "lib/*" io.mybatis.rui.cli.Main -p project.yaml -o cms.zip

执行命令后,最终生成 cms.zip 文件,文件结构如下:

  1. $ unzip -v cms.zip
  2. Archive: cms.zip
  3. Length Method Size Cmpr Date Time CRC-32 Name
  4. -------- ------ ------- ---- ---------- ----- -------- ----
  5. 0 Defl:N 2 0% 05-30-2021 18:17 00000000 cms/
  6. 0 Defl:N 2 0% 05-30-2021 18:17 00000000 cms/src/
  7. 0 Defl:N 2 0% 05-30-2021 18:17 00000000 cms/src/main/
  8. 0 Defl:N 2 0% 05-30-2021 18:17 00000000 cms/src/main/java/
  9. 0 Defl:N 2 0% 05-30-2021 18:17 00000000 cms/src/main/java/io/
  10. 0 Defl:N 2 0% 05-30-2021 18:17 00000000 cms/src/main/java/io/mybatis/
  11. 0 Defl:N 2 0% 05-30-2021 18:17 00000000 cms/src/main/java/io/mybatis/demo/
  12. 0 Defl:N 2 0% 05-30-2021 18:17 00000000 cms/src/main/java/io/mybatis/demo/mybatis/
  13. 0 Defl:N 2 0% 05-30-2021 18:17 00000000 cms/src/main/java/io/mybatis/demo/mybatis/mapper/
  14. 177 Defl:N 135 24% 05-30-2021 18:17 bf55dc13 cms/src/main/java/io/mybatis/demo/mybatis/mapper/RoleMapper.java
  15. 177 Defl:N 135 24% 05-30-2021 18:17 46655d51 cms/src/main/java/io/mybatis/demo/mybatis/mapper/UserMapper.java
  16. 205 Defl:N 160 22% 05-30-2021 18:17 b161f496 cms/src/main/java/io/mybatis/demo/mybatis/mapper/UserRoleMapper.java
  17. 0 Defl:N 2 0% 05-30-2021 18:17 00000000 cms/src/main/java/io/mybatis/demo/mybatis/model/
  18. 991 Defl:N 438 56% 05-30-2021 18:17 a7ea4bb7 cms/src/main/java/io/mybatis/demo/mybatis/model/Role.java
  19. 1679 Defl:N 581 65% 05-30-2021 18:17 1ef86c27 cms/src/main/java/io/mybatis/demo/mybatis/model/User.java
  20. 1341 Defl:N 504 62% 05-30-2021 18:17 92c5bec1 cms/src/main/java/io/mybatis/demo/mybatis/model/UserRole.java
  21. 0 Defl:N 2 0% 05-30-2021 18:17 00000000 cms/src/main/java/io/mybatis/demo/mybatis/service/
  22. 235 Defl:N 153 35% 05-30-2021 18:17 efb596bd cms/src/main/java/io/mybatis/demo/mybatis/service/RoleService.java
  23. 235 Defl:N 153 35% 05-30-2021 18:17 59b608c0 cms/src/main/java/io/mybatis/demo/mybatis/service/UserService.java
  24. 267 Defl:N 177 34% 05-30-2021 18:17 5121a031 cms/src/main/java/io/mybatis/demo/mybatis/service/UserRoleService.java
  25. 0 Defl:N 2 0% 05-30-2021 18:17 00000000 cms/src/main/java/io/mybatis/demo/mybatis/service/impl/
  26. 442 Defl:N 218 51% 05-30-2021 18:17 26c22e04 cms/src/main/java/io/mybatis/demo/mybatis/service/impl/RoleServiceImpl.java
  27. 442 Defl:N 219 51% 05-30-2021 18:17 fdabfe3b cms/src/main/java/io/mybatis/demo/mybatis/service/impl/UserServiceImpl.java
  28. 490 Defl:N 247 50% 05-30-2021 18:17 742f3203 cms/src/main/java/io/mybatis/demo/mybatis/service/impl/UserRoleServiceImpl.java
  29. 0 Defl:N 2 0% 05-30-2021 18:17 00000000 cms/src/main/resources/
  30. 0 Defl:N 2 0% 05-30-2021 18:17 00000000 cms/src/main/resources/mappers/
  31. 435 Defl:N 252 42% 05-30-2021 18:17 afff9e3d cms/src/main/resources/mappers/RoleMapper.xml
  32. 574 Defl:N 277 52% 05-30-2021 18:17 920e9299 cms/src/main/resources/mappers/UserMapper.xml
  33. 505 Defl:N 253 50% 05-30-2021 18:17 ef08156b cms/src/main/resources/mappers/UserRoleMapper.xml
  34. -------- ------- --- -------
  35. 8195 3930 52% 29 files

其他参数可以自己尝试。

7.7 总结

睿Rui是一个非常灵活易用的代码生成器,包含的功能细节非常的多,本篇文档旨在入门,还有很多内容没有展示出来,后续会针对睿Rui提供一些进阶使用文档,后续的计划如下:

  • 【文档】编写自己的代码模板
  • 【文档】项目结构和代码的配置
  • 【文档】tableRules 表名、列名特殊配置配置和字典设置
  • 【文档】MERGE 合并文件用法介绍
  • 【文档】使用 睿Rui 生成完整项目
  • 【直播】分享 睿Rui-cli 代码生成器配置和使用
  • 【文档】睿Rui-tpl 代码模板生成器的使用文档(生成代码生成器配置的工具)
  • 【直播】以比较火的某个框架作为示例使用 睿Rui-tpl
  • 【文档】睿Rui-gui 代码生成器GUI客户端使用说明
  • 【工具】睿Rui-idea-plugin IDEA插件,结合IDEA的datasource使用代码生成器
  • 【工具】睿Rui-SaaS 代码生成器发布,提供模板市场