Skip to content

jluncc/code-generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java web 中单表 CRUD 生成器

根据表名,生成该表的实体类,dao 层 CRUD 接口,以及相应的 service 层,controller 层接口。

项目类间关联图

项目类间关联图

使用策略模式,根据需要生成的文件,从 GenerateStrategyFactory 获取不同的 handler 策略进行生成。

使用说明

1. 用法

在 /resources/config.json 中修改配置信息,执行 CodeGenerator.main() 方法生成文件。

2. config.json 解释

{
  -- 数据库连接信息,除 tableComment 外其他皆为必填项
  "dbInfo": {
    "url": "jdbc:mysql://localhost:3306/test",
    "username": "username",
    "password": "password",
    "driver": "com.mysql.cj.jdbc.Driver",
    "dbName": "test",
    "tableName": "users",
    "tableComment": "测试-表注释"
  },

  -- 生成文件配置信息
  "generatorInfo": {
    -- 所使用的 orm 框架,目前支持 mybatis / jpa
    "orm": "mybatis", 
    "author": "jinglun",
    -- 项目在磁盘中的路径
    -- 例如我的项目分为 /com/example/demo/controller, /com/example/demo/service 层等,则这里需要指明到 /com/example/demo 目录
    "packageBaseLocation": "/Users/jinglun/Desktop/springboot-demo/src/main/java/com/example/demo",
    -- 项目包路径,依赖 packageBaseLocation,例如这个例子便是 com.example.demo
    "packageBaseName": "com.example.demo",
    -- 是否生成实体类的开关
    "generatorEntity": {
      "needGenerate": true,
      "detailPackageName": "/model"
    },
    -- 是否生成 dao 层接口的开关
    "generatorDao": {
      "needGenerate": true,
      "detailPackageName": "/mapper",
      -- mybatis 中生成 XML 文件的磁盘路径
      "mapperXMLPath": "/Users/jinglun/Desktop/springboot-demo/src/main/resources/mapper"
    },
    -- 是否生成 service 层接口的开关
    "generatorService": {
      "needGenerate": true,
      "detailPackageName": "/service"
      -- service 层代码模式:单单实现类,还是需要接口及其实现类
      "interfaceMode": false
    },
    -- 是否生成 controller 层接口的开关
    "generatorController": {
      "needGenerate": true,
      "detailPackageName": "/controller",
      -- controller 层接口的统一路由前缀
      "mappingUrl": "/demo"
    }
  },

  -- 插件配置相关信息,例如是否需要生成 swagger 注解,lombok 注解等
  "pluginInfo": {
    "needSwagger": false,
    "needLombok": false
  }
}

3. 实现功能

  1. 支持 MySQL 数据源
  2. 支持 mybatis / jpa
  3. 支持 service 层接口实现类模式或直接实现类模式
  4. 支持 swagger / lombok 注解配置信息
  5. 支持配置文件中不存在的文件夹时自动创建文件夹
  6. 支持自定义对象的生成(ApiResult)

4. TODO list

  1. 支持多数据源
  2. 代码优化
  3. 支持生成其他文件(如配置文件)

About

Java web 中单表 CRUD 生成器

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •