idea package自动生成_idea快速生成entity、dao、service

本文介绍了如何使用IntelliJ IDEA(Idea)和CodeMaker插件来高效生成Java项目的entity、dao、service类。首先,文章讲述了准备工作,包括连接数据库和安装CodeMaker插件。接着,详细展示了生成实体类的Groovy脚本,并解释了脚本工作原理。最后,提到了使用codemaker插件创建模板来生成service和dao,以及如何在已有的实体类基础上应用这些模板。
摘要由CSDN通过智能技术生成

经常写一些业务代码,学会快速生成项目上业务代码所需的类entity、dao、service类对我们提高工作效率很有帮助,整理步骤如下:

一、准备工作

在idea中连接数据库

下载idea的CodeMaker插件

二、生成实体类

准备生成实体类的groovy脚本,这里我直接用写好了的脚本,因为不懂groovy,只能是在脚本上猜着改改,但实体类生成都差不多,猜着改改勉强能改到满足自己要求,下面把脚本贴上:

import com.intellij.database.model.DasTable

import com.intellij.database.model.ObjectKind

import com.intellij.database.util.Case

import com.intellij.database.util.DasUtil

import java.io.*

import java.text.SimpleDateFormat

import java.lang.*;

/*

* Available context bindings:

* SELECTION Iterable

* PROJECT project

* FILES files helper

*/

packageName = ""

typeMapping = [

(~/(?i)bigint/) : "Long",

(~/(?i)int|tinyint|smallint|mediumint/) : "Integer",

(~/(?i)bool|bit/) : "Boolean",

(~/(?i)float|double|decimal|real/) : "Double",

(~/(?i)datetime|timestamp|date|time/) : "Date",

(~/(?i)blob|binary|bfile|clob|raw|image/): "InputStream",

(~/(?i)/) : "String"

]

FILES.chooseDirectoryAndSave("Choose directory", "Choose where to store generated files") { dir ->

SELECTION.filter { it instanceof DasTable && it.getKind() == ObjectKind.TABLE }.each { generate(it, dir) }

}

def generate(table, dir) {

def className = javaName(table.getName(), true)

def fields = calcFields(table)

packageName = getPackageName(dir)

PrintWriter printWriter = new PrintWriter(new OutputStreamWriter(new FileOutputStream(new File(dir, className + ".java")), "UTF-8"))

printWriter.withPrintWriter {out -> generate(out, className, fields,table)}

// new File(dir, className + ".java").withPrintWriter { out -> generate(out, className, fields,table) }

}

// 获取包所在文件夹路径

def getPackageName(dir) {

return dir.toString().replaceAll("\\\\", ".").replaceAll("/", ".").replaceAll("^.*src(\\.main\\.java\\.)?", "") + ";"

}

def generate(out, className, fields,table) {

out.println "package $packageName"

out.println ""

out.println "import com.yunhuakeji.component.base.annotation.doc.ApiField;"

out.println "import com.yunhuakeji.component.base.annotation.entity.Code;"

out.println "import com.yunhuakeji.component.base.bean.entity.base.BaseEntity;"

out.prin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值