# gradle-mybatis-codegen-plugin
**Repository Path**: jiangyun/gradle-mybatis-codegen-plugin
## Basic Information
- **Project Name**: gradle-mybatis-codegen-plugin
- **Description**: gradle-mybatis代码生成插件
- **Primary Language**: Kotlin
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2023-01-02
- **Last Updated**: 2024-04-12
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 基于gradle mybatis-plus的代码生成插件
**注:resources/template下的引擎模板代码不能格式化,切记,否则会导致生成的代码格式特别乱!!!**
## 介绍
基于gradle构建工具并支持gradle的代码生成插件,生成代码支持类型如下:
* 数据库类型
* [x] mysql5.6+
* [x] postgresql12+
* [x] mariadb10+
* [ ] h2
* [ ] sqlite
* [ ] mssql
* [ ] oracle
* [ ] db2
* [ ] tidb
* [ ] sybase
* 支持框架及特点
* [x] gradle
* [x] maven
* [x] springboot
* [x] springmvc
* [x] mybatis
* [x] mybatis-plus
* [x] swagger2
* [x] swagger-bootstrap-ui
* [x] knife4j
* 支持语言
* [x] java
* [x] kotlin
> 生成的代码,在mybatis版本中,是默认直接生成从dao层到controller层的CRUD,mybatis-plus则按照官方代码生成方式
> 目前暂时推荐使用创建独立的gradle文件,并在build.gradle或build.gradle.kts中引用即可。
## 软件架构
1. kotlin;
2. freemarker;
3. gradle;
4. druid;
## 发布插件
```bash
./gradlew publishPlugins
# 如果已经安装gradle7+
gradle publishPlugins
```
## 使用
#### groovy
Using the plugins DSL:
```groovy
plugins {
id("io.github.jyrmc") version "2.0.2"
}
```
Using legacy plugin application:
```groovy
buildscript {
repositories {
maven {
url = uri("https://plugins.gradle.org/m2/")
}
}
dependencies {
classpath("io.github.jyrmc:gradle-mybatis-codegen-plugin:2.0.2")
}
}
```
#### kotlin
Using the plugins DSL:
```groovy
plugins {
id("io.github.jyrmc") version "2.0.2"
}
```
Using legacy plugin application:
```groovy
buildscript {
repositories {
maven {
url = uri("https://plugins.gradle.org/m2/")
}
}
dependencies {
classpath("io.github.jyrmc:gradle-mybatis-codegen-plugin:2.0.2")
}
}
apply(plugin = "io.github.jyrmc")
configure {
dbType.set("mysql") // 数据库类型:mysql(mariadb)/postgresql
url.set("localhost") // 数据库地址
port.set(3306) // 数据库端口
database.set("jyRMc_test_database") // 数据库名称
userName.set("root") // 用户名
password.set("admin123456") // 密码
frameworkType.set("mybatisplus") // 生成代码类型: mybatis/mybatisplus, 建议mybatisplus
tablePrefix.set("iwiteks") // 设置需要忽略的表前缀,如表名为iwiteks_user,则设置后生成的Entity java文件为:UserEntity,否则为IwiteksUserEntity
tables.set(arrayListOf( // 设置需要生成代码的表
"jyrmc_sys_user",
"jyrmc_sys_user_role",
))
ignoreColumns.set(arrayListOf( // 排除需要生成代码的字段(列)
"tenant_id",
"sys_group_id",
))
projectPath.set("/Users/jiangyun/IdeaProjects/gmcp-demo") // 项目所在绝对地址
packageName.set("com.example.gmcp") // 包名称
controller.set("controller") // 控制器包名称
service.set("service") // 业务逻辑层包名称
mapper.set("mapper") // mapper层包名称
entity.set("entity") // 实体包名称
xml.set("mapper") // 项目resources文件夹下mapper对应的xml所在文件夹名称
languageType.set("java") // 生成语言类型:java/kotlin, kotlin未经过严格测试
author.set("jyRMc") // 生成代码作者
apiPrefix.set("api") // controller路由前缀
restfulStyle.set(true) // 是否为restful分隔
swagger.set(true) // 是否支持生产swagger注解,便于生成swagger文档
}
```
## 集成后idea中的效果

4. 运行代码即可生成我们需要的代码。
## 代码生成中引用源码
| 源码文件名 | 源码文档 | 文档说明 |
|:-----------------|:-------------------------------------------------|:----------|
| IResultCode.java | [IResultCode.java文档地址](docs/code/IResultCode.md) | 返回码接口定义 |
| ResultCode.java | [ResultCode.java文档地址](docs/code/ResultCode.md) | 返回码接口枚举实现 |
| Result.java | [Result.java文档地址](docs/code/Result.md) | 统一响应消息 |
## 代码效果生成截图
#### controller

#### service

#### mapper

#### mapperxml

#### entity

#### vo

#### dto

