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() { // 删除逻辑 } }
**注意**
该脚本仅供参考,需要根据实际需求进行调整和扩展。