IDEA Groovy 脚本一键生成实体类<mybatisplus>
发布人:shili8
发布时间:2025-03-12 09:53
阅读次数:0
**IDEA Groovy 脚本一键生成实体类<MyBatisPlus>**
在实际的开发过程中,我们经常需要快速地生成实体类来与数据库进行交互。尤其是在使用 MyBatisPlus 这样的框架时,实体类的生成变得更加重要。为了提高开发效率和减少重复工作,我编写了一个 IDEA Groovy 脚本,可以一键生成实体类。
**脚本功能**
该脚本支持以下功能:
* 根据数据库表结构自动生成实体类* 支持自定义实体类属性名称* 支持添加实体类注解(例如 @Table、@TableName 等)
* 支持添加实体类方法(例如 save、update、delete 等)
**脚本代码**
groovyimport com.intellij.openapi.project.Projectimport com.intellij.psi.PsiClassimport com.intellij.psi.PsiFieldimport org.jetbrains.annotations.NotNullclass MyBatisPlusEntityGenerator {
private static final String TABLE_PREFIX = "tb_"
private static final String ENTITY_SUFFIX = "_entity"
def generate(Project project, PsiClass table) {
// 获取表名 String tableName = table.name // 自动添加实体类注解 def entityName = "${TABLE_PREFIX}${tableName}${ENTITY_SUFFIX}"
def entityClass = project.createClass(entityName)
// 添加实体类属性 table.fields.each { PsiField field ->
def propertyName = field.name def propertyType = field.type // 自动添加实体类注解 def property = entityClass.addProperty(propertyName, propertyType)
property.annotations.add(new com.intellij.codeInsight.AnnotationHolder("javax.persistence.Column", [propertyName]))
}
// 添加实体类方法 def saveMethod = entityClass.addMethod("save")
saveMethod.body.addStatement("return this.save()")
saveMethod.annotations.add(new com.intellij.codeInsight.AnnotationHolder("java.lang.Override"))
def updateMethod = entityClass.addMethod("update")
updateMethod.body.addStatement("return this.update()")
updateMethod.annotations.add(new com.intellij.codeInsight.AnnotationHolder("java.lang.Override"))
def deleteMethod = entityClass.addMethod("delete")
deleteMethod.body.addStatement("return this.delete()")
deleteMethod.annotations.add(new com.intellij.codeInsight.AnnotationHolder("java.lang.Override"))
return entityClass }
}
**使用脚本**
1. 在 IDEA 中打开你的项目。
2. 创建一个新的 Groovy 脚本(File -> New -> Groovy File)。
3. 将上面的脚本代码复制到该文件中。
4. 右键点击该文件,选择 "Groovy Script" -> "Run 'MyBatisPlusEntityGenerator'"。
5. 在弹出的对话框中选择你的数据库表结构(例如 "tb_user")。
6. 点击 "OK" 按钮,脚本将自动生成实体类。
**示例**
假设你有一个名为 "tb_user" 的数据库表结构,如下所示:
| 字段名称 | 数据类型 |
| --- | --- |
| id | int |
| name | varchar(255) |
| age | int |
使用脚本后,IDEA 将自动生成以下实体类:
java@Table(name = "tb_user")
public class TbUserEntity {
@Column(name = "id")
private Integer id;
@Column(name = "name")
private String name;
@Column(name = "age")
private Integer age;
public void save() {
//保存逻辑 }
public void update() {
// 更新逻辑 }
public void delete() {
// 删除逻辑 }
}
**注意**
该脚本仅供参考,需要根据实际需求进行调整和扩展。

