# clyi **Repository Path**: ecelin/clyi ## Basic Information - **Project Name**: clyi - **Description**: SpringBoot项目自动生成工具,通过读取数据库表字段信息,一键搭建 SpringBoot+MybatisPlus 的项目, 其中集成了 swagger ,包含了基础的增删改查和单元测试. 用户只需设计好数据库表然后运行该工具就能一键生成 Spring Web 项目,方便后端快速进行业务开发.解决了每次新建项目都需要花长时间配置环境,新增实体对象和常用增删改查的痛点 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 7 - **Forks**: 1 - **Created**: 2022-11-06 - **Last Updated**: 2024-11-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # clyi spring web项目生成器 ## 介绍 通过配置文件读取 MySQL 数据库表字段信息,一键搭建 SpringBoot+MybatisPlus 的项目, 其中集成了 swagger ,包含了基础的增删改查和单元测试. 用户只需设计好数据库表然后运行该工具就能一键生成 Spring Web 项目,方便后端快速进行业务开发.解决了每次新建项目都需要花长时间配置环境,新增实体对象和常用增删改查的痛点 ## 软件架构 JDK8, MySql-Jdbc, Freemarker ## 注意事项 新生成的项目文件会覆盖桌面上同名的项目文件,建议每次生成项目后将项目移动到其他目录而不是保留在桌面上 ## 版本特性 ### v2.0 (2023.02.20) #### 1, 集成了Swagger Open API文档系统 > yaml配置了Swagger开关, `dev` 环境默认打开,`pro`环境默认关闭. 也可以手动设置打开或关闭 > Entitiy,Dto, Vo, Controller智能一键添加了完善的Swagger注解和字段注释, 开箱即用,无需手动设置 #### 2, Controller层遵循Restful风格 > 书写简化, 降低开发了的复杂性,提高系统的可伸缩性 > 隐藏资源的访问行为 > > 自带`实体新增`,`根据id查询实体`,`根据id删除实体`,`根据id更新实体`,`分页查询实体集合`**5**种常用接口 > > 自动生成了对应service层方法的单元测试 #### 3, 基于Jackson配置出入参数序列化器 > 出入参为`Long`和`BigInteger`类型时自动序列化为字符串类型, 避免数字过长导致的前端JavaScript精度丢失问题 > 入参为字符串类型时,自动修剪首尾空格,参数校验时再也不用手动调用字符的`.trim()`方法 > 出入参为`LocalDateTime`,`LocalDate`,`LocalTime`时,自动将其转换为对应的`yyyy-MM-dd HH:mm:ss`,`yyyy-MM-dd`,`HH:mm:ss`格式 #### 4, 基于Mybatis Plus做深度适配 > 时间类字段根据类型自动添加`@JsonFormat`配置其对应的显示格式和时区 > > 新增时,会根据时间类字段名称匹配`update`和`create`,自动插入当前时间 > > 更新时,会根据时间类的字段名称匹配`update`,自动插入当前时间 > > 分页查询的时候字段智能匹配(*时间类未做查询功能,可根据业务需求自行添加*), `String`类型做`.like()`模糊匹配, `number`类型做`.eq()`精确匹配 > > 分页排序时,自动使用时间类倒序, 如有`update`的时间类字段则优先使用该字段 #### 5, 智能创建数据库表的建表语句 > 在`resource`->`sql-files`目录下自动创建对应实体的建表语句,方便后期的数据库解构维护 #### 6, 精准的常见异常捕获 > 在处理`自定义异常`和`全局异常`的同时,还精确的将`全局异常`拆分成了`不可控异常`,`唯一索引异常`,`sql拼写错误异常`,`调用方法错误异常`; > 在捕获这些异常时进行了精准的范围拦截和日志信息收集; 对用户端:简明扼要报告错误原因; 对后端:详细的收集了出错原因并记录日志 ### v1.0 (2022.11.04) 1, 基于SpringBoot Web框架 + Mybatis Plus ORM框架 搭建了基础的controller, service, dao框架, 2, 提供了新增, 根据id更新, 根据id查询, 根据id删除和简单的分页查询 3, 自动生成了对应方法的单元测试 ## 快速上手 ### jar 版(需要jdk8环境) 1.1解压 `clyi v2.02.zip` 得到三个文件`clyi.jar`,`setting.properties`, `执行程序.cmd` ![image-20230220141335828](images/image-20230226031855122-1.png) 1.2 在`setting.properties` 文件中填写正确的数据库参数 ![image-20230220141709950](images/image-20230226031759331-1.png) ![image-20230220141628892](images/image-20230220141628892.png) 1.3 双击运行 `执行程序.cmd` 即可在桌面上生成项目 ![](images/image-20230226031945594-1.png) ![image-20230220141931513](images/image-20230220141931513.png) 1.4 用IDEA打开项目,即可正常运行项目, 程序已经自动根据数据库表字段生成了实体类, dao层, service层和controller层, mybatis xml, yaml等常用模块. 其中controller自带增删改查方法, 可直接启动项目打开对应的Open Api进行测试. `controller层` ![image-20230220142105810](images/image-20230220142105810.png) `service层,自动生成增删改查` ![image-20230220142150137](images/image-20230220142150137.png) `entitiy自动生成对应的注解注释` ![image-20230220142352197](images/image-20230220142352197.png) `建表sql` ![image-20230220142232999](images/image-20230220142232999.png) `pro生产环境` ![image-20230220142837327](images/image-20230220142837327.png) `dev测试环境` ![image-20230220142725215](images/image-20230220142725215.png) `api文档` ![image-20230220143110278](images/image-20230220143110278.png) `新增` ![image-20230220143301141](images/image-20230220143301141.png) `分页查询` ![image-20230220143456077](images/image-20230220143456077.png) ![image-20230220144221217](images/image-20230220144221217.png) ![image-20230220145032950](images/image-20230220145032950.png) ![image-20230220145155024](images/image-20230220145155024.png) ### 源码版 2.1 打开resource目录下的 `setting.properties`文件, 填写正确的参数 ![image-20230220145339831](images/image-20230220145339831.png) 2.2 运行`MainApplication`,提示制作完成后,就会在桌面生成对应的项目 ![image-20230220145420189](images/image-20230220145420189.png) ![image-20230220145509249](images/image-20230220145509249.png) 2.3 用IDEA打开项目即可 ![image-20230220145604849](images/image-20230220145604849.png)