背景
在 windows 系统中,idea 在 C:\Users\用户名\.IntelliJIdea2018.2\config\extensions\com.intellij.database\schema
目录下默认存在如下 Groovy 文件:Generate POJOs.groovy
,配合 idea 的 Database 数据库管理工具,可以快速生成 POJO 类。
于是我想何不基于这个类编写 groovy 代码自动生成 mappings 和 dao 呢,并按自己项目需要改造 Generate POJOs.groovy
。
Groovy
groovy 是在 java 平台上的、具有象 Python,Ruby 和 Smalltalk 语言特性的灵活动态语言,groovy 保证了这些
特性象 java 语法一样被 java 开发者使用。 – 《Groovy in action》
Groovy 跟 java 一样是运行于 JVM 之上的语言,比起 java 拥有许多语法上的便利,可以无缝使用 java 类库及其特性,甚至可以直接用 Groovy 开发 Web 程序。
推荐一个 Youtube 上一小时多的视频,看完 Groovy 的大部分语法也就掌握了: Groovy Tutorial
实现
无论是修改 Generate POJOs.groovy
还是在其基础之上编写新的 groovy 文件都需要将其放于C:\Users\用户名\.IntelliJIdea2018.2\config\extensions\com.intellij.database\schema
目录下,这样文件中引入的 com.intellij.database.*
才能找到,新建 idea 项目也会在 Scratches and Consoles 目录下找到。
连上数据库后就可以选中要生成的表,鼠标右键即可看到。
代码说明
先拿 Generate POJOs.groovy
举例进行说明,关键代码如下:
FILES.chooseDirectoryAndSave("Choose directory", "Choose where to store generated files") {
dir ->
SELECTION.filter {
it instanceof DasTable }.each {
generate(it, dir) }
}
def generate(table, dir) {
def className = javaName(table.getName(), true)
def fields = ca