java根据数据库生成基于mybatisplus,swagger的实体类脚本

794 阅读1分钟

自定义GenerateMysqlEntity类

单例模式:

image-20210818171217066

入口:

image-20210818171540436

generate方法下面讲

数据库信息:

image-20210818171153010

DataBaseUtils

参考:juejin.cn/post/699434…

用到的静态数据:

image-20210818171418344

生成实体类文件:

image-20210825163133692

生成class的所有内容:

image-20210825163240779

StringBuffer类

构造一个没有字符的字符串缓冲区,初始容量为16个字符

CommonUtils.getTransStr

参考:juejin.cn/post/699585…

getKeyStringList

生成Key列表(数据库表的字段列表)

image-20210825160431256

生成效果:

image-20210825160709000

getKeyLabelList

生成key对应的注释

image-20210825160902204

生成效果:

image-20210825160935391

processAllAttrs

生成所有成员变量

image-20210825161101716

生成效果:

image-20210825161119316

sqlType2JavaType

查找sql字段类型所对应的Java类型

image-20210825161553396

总结步骤:
  1. 获取表信息。(利用DataBaseUtils)

  2. 获取根目录路径。(File类)

  3. 返回packageOutPath(com.api.johnzeng.Entity)的绝对路径。

  4. 生成packageOutPath(com.api.johnzeng.Entity)的file实例。

  5. 生成packageOutPath(com.api.johnzeng.Entity)目录。

  6. 遍历tableInfoList。

    1. 生成文件内容。
    2. 利用FileWriter,PrintWriter,将内容写入,输出到Entity(com.api.johnzeng.Entity)目录

实体类的使用:

配置MyBatisPlugsConfig

image-20210825170021989

创建mapper

image-20210825165845253

将mapper放到Mapper目录下,MapperScan才会扫描到

service层使用

image-20210825170345878

  1. 使用@Autowired注入mapper
  2. 初始化单例的QueryWrapper类
  3. 使用方法参考maybatis plus文档