idea 配置mysql逆向_使用Go语言+IDEA+mysql 逆向生成dao 和 domain 的方法

参考地址:

使用方式

第一步:安装idea:自行百度

第二步:Idea配置mysql 连接

View -> Tool Windows -> DataSource 出现数据连接页面

点击 + 号,出现数据库连接设置,

name: 连接名称

comments: 备注

host:本地或者内网ip

user:用户名

password:密码

Database:连接数据库名称

url: jdbc连接

注意此处如果是mysql 5.5 以上 的版本需要加入如下参数

serverTimezone=UTC

第三步:使用groovy逆向生成model, dao, daoxml 三种类型的文件

右击连接:选中Scripted Extendsions

选择Go to Scripts Directory 调转到go 语言的模板地址

如果需要扩展则只需要在该文件夹内加入对应的模板即可

第四步:几个默认的模板

Generate MyPOJOs.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

/*

* Available context bindings:

*   SELECTION   Iterable

*   PROJECT     project

*   FILES       files helper

*/

packageName = ""

typeMapping = [

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

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

(~/(?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 = javaClassName(table.getName(), true)

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) {

def tableName = table.getName()

out.println "package $packageName"

out.println ""

out.println "import javax.persistence.Column;"

out.println "import javax.persistence.Entity;"

out.println "import javax.persistence.Table;"

out.println "import java.io.Serializable;"

out.println "import lombok.Data;"

out.println "import lombok.AllArgsConstructor;"

out.println "import lombok.Builder;"

out.println "import lombok.NoArgsConstructor;"

Set types = new HashSet()

fields.each() {

types.add(it.type)

}

if (types.contains("Date")) {

out.println "import java.util.Date;"

}

if (types.contains("InputStream")) {

out.println "import java.io.InputStre

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值