日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

IDEA POJO開發(fā)神器之Groovy的使用詳解

瀏覽:306日期:2024-08-22 08:15:04

暫時只對 MySQL進行了測試

項目使用 Lombok MyBatis-Plus

一:使用步驟首先在項目右側找到 DataBase 如圖 沒有請參考 idea中database不顯示問題

IDEA POJO開發(fā)神器之Groovy的使用詳解

2.點開之后進行數(shù)據(jù)庫連接(注意沒有驅動的請下載相關數(shù)據(jù)庫驅動)具體步驟如圖

IDEA POJO開發(fā)神器之Groovy的使用詳解

點開 + 號

IDEA POJO開發(fā)神器之Groovy的使用詳解

選擇Date Source

IDEA POJO開發(fā)神器之Groovy的使用詳解

找到相應的數(shù)據(jù)庫 這里我使用的是 mysql

IDEA POJO開發(fā)神器之Groovy的使用詳解

如果沒有 Dirver 請下載 idea 會在窗口左下角給提示(這里具體在什么位置我也記不清楚)輸入相關連接信息

IDEA POJO開發(fā)神器之Groovy的使用詳解

過程中出現(xiàn)任何問題,請在留言區(qū)留言(萌新基本全天在線)連接上之后如果沒有需要的數(shù)據(jù)可以點擊如下圖方式

IDEA POJO開發(fā)神器之Groovy的使用詳解

IDEA POJO開發(fā)神器之Groovy的使用詳解

先設置groovy

IDEA POJO開發(fā)神器之Groovy的使用詳解

替換(有些地方需要注意,具體看下方源碼)

import com.intellij.database.model.DasTableimport com.intellij.database.util.Caseimport com.intellij.database.util.DasUtilimport java.time.LocalDate/* * Available context bindings: * SELECTION Iterable<DasObject> * PROJECT project * FILES files helper */// 此處指定包路徑,路徑需要自行維護;packageName = 'com.qgy.web.entity;'// 此處指定對應的類型映射,可按需修改,目前tinyint如果要映射到自定義枚舉類型,只能手動修改typeMapping = [ (~/(?i)bigint/) : 'Long', (~/(?i)int/) : 'Integer', (~/(?i)tinyint/) : 'Boolean', (~/(?i)float|double|decimal|real/): 'BigDecimal', (~/(?i)time|datetime|timestamp/) : 'LocalDateTime', (~/(?i)date/) : 'LocalDate', (~/(?i)/) : 'String']// 上面用到類和它的導入路徑的之間的映射importMap = [ 'BigDecimal' : 'java.math.BigDecimal', 'LocalDate' : 'java.time.LocalDate', 'LocalDateTime': 'java.time.LocalDateTime',]// 導入路徑列表,下面引用的時候會去重,也可以直接聲明成一個 HashSetimportList = []// 彈出選擇文件的對話框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) + 'Entity' def fields = calcFields(table) new PrintWriter(new OutputStreamWriter(new FileOutputStream(new File(dir, className + '.java')), 'utf-8')).withPrintWriter { out -> generate(out, className, fields, table) }}// 從這里開始,拼實體類的具體邏輯代碼def generate(out, className, fields, table) { out.println 'package $packageName' out.println '' // 引入所需的包 out.println 'import lombok.Data;' out.println 'import lombok.EqualsAndHashCode;' out.println 'import lombok.experimental.Accessors;' out.println 'import com.baomidou.mybatisplus.annotation.*;' out.println 'import java.io.Serializable;' // 去重后導入列表 importList.unique().each() { pkg -> out.println 'import ' + pkg + ';' } out.println '' // 添加類注釋 out.println '/**' // 如果添加了表注釋,會加到類注釋上 if (isNotEmpty(table.getComment())) { out.println ' * ' + table.getComment() } out.println ' *' out.println ' * @author 輸入作者' out.println ' * @date ' + LocalDate.now() out.println ' */' // 添加類注解 out.println '@Data' out.println '@EqualsAndHashCode(callSuper = false)' out.println '@Accessors(chain = true)' out.println '@TableName('${table.getName()}')' out.println 'public class $className implements Serializable {' out.println '' out.println genSerialID() boolean isId = true // 遍歷字段,按下面的規(guī)則生成 fields.each() { // 輸出注釋 if (isNotEmpty(it.comment)) { out.println 't/**' out.println 't * ${it.comment}' out.println 't */' } // 這邊默認第一個字段為主鍵,實際情況大多數(shù)如此,遇到特殊情況可能需要手動修改 if (isId) { out.println 't@TableId(type = IdType.AUTO)' isId = false } if ((it.annos + '').indexOf('[@Id]') >= 0) out.println 't@Id' if (it.annos != '') out.println ' ${it.annos.replace('[@Id]', '')}' out.println 'tprivate ${it.type} ${it.name};' out.println '' } out.println '' out.println '}'}def calcFields(table) { DasUtil.getColumns(table).reduce([]) { fields, col -> def spec = Case.LOWER.apply(col.getDataType().getSpecification()) def typeStr = typeMapping.find { p, t -> p.matcher(spec).find() }.value if (importMap.containsKey(typeStr)) { importList.add(importMap.get(typeStr)) } fields += [[ name : javaName(col.getName(), false), type : typeStr, comment: col.getComment(), annos : 't@TableField('' + col.getName() + '' )' ]] }}def isNotEmpty(content) { return content != null && content.toString().trim().length() > 0}def javaName(str, capitalize) { def s = com.intellij.psi.codeStyle.NameUtil.splitNameIntoWords(str) .collect { Case.LOWER.apply(it).capitalize() } .join('') .replaceAll(/[^p{javaJavaIdentifierPart}[_]]/, '_') capitalize || s.length() == 1 ? s : Case.LOWER.apply(s[0]) + s[1..-1]}static String genSerialID() { return 'tprivate static final long serialVersionUID = ' + Math.abs(new Random().nextLong()) + 'L;'}

選中需要的數(shù)據(jù)庫,找到需要生成實體類的表這里我就隨便選擇一個。右鍵選擇

IDEA POJO開發(fā)神器之Groovy的使用詳解

在左側列表找到文件名之后點擊會有彈窗選擇你要存放的地方點擊🆗就行了,效果如下

package com.qgy.web.entity;import lombok.Data;import lombok.EqualsAndHashCode;import lombok.experimental.Accessors;import com.baomidou.mybatisplus.annotation.*;import java.io.Serializable;import java.time.LocalDateTime;/** * 超級管理員賬號信息表 * * @author rog * @date 2020-07-20 */@Data@EqualsAndHashCode(callSuper = false)@Accessors(chain = true)@TableName('sys_super')public class SysSuperEntity implements Serializable {private static final long serialVersionUID = 5132404354445122973L;/** * 主鍵id標識 */@TableId(type = IdType.AUTO) @TableField('id' )private Integer id;/** * 管理員id唯一標識 */ @TableField('account_id' )private String accountId;/** * 管理員賬號 */ @TableField('account' )private String account;/** * 管理員密碼 */ @TableField('account_password' )private String accountPassword;/** * 上一次登錄ip */ @TableField('account_ip_last' )private String accountIpLast;/** * 當前登錄ip */ @TableField('account_ip_now' )private String accountIpNow;/** * 最近一次登錄時間 */ @TableField('login_time' )private LocalDateTime loginTime;/** * 是否啟用 */ @TableField('isEnable' )private Integer isEnable;}

到此這篇關于IDEA POJO開發(fā)神器之Groovy的使用的文章就介紹到這了,更多相關IDEA POJO Groovy內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: IDEA
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品久久久久久妇女| 成人国产综合| 四虎在线精品| 欧美+亚洲+精品+三区| 日韩国产一区| 欧洲一级精品| 伊人精品一区| 国产精品97| 免费在线观看不卡| 日韩精品福利一区二区三区| 久久狠狠亚洲综合| 国产精品久久久网站| 精品视频一区二区三区在线观看 | 日韩精品91| 色在线视频观看| 国产一区清纯| 免播放器亚洲一区| 久久狠狠久久| 久久久久久自在自线| 99精品小视频| 亚洲欧美日韩一区在线观看| 亚洲精品影视| 久久精品国产99| 久久男女视频| 亚洲一区二区日韩| 国产精品99久久久久久董美香| 视频在线不卡免费观看| 午夜久久美女| 亚洲高清久久| 中文字幕一区二区三区日韩精品| 国产日韩亚洲| 久久国产欧美| 亚洲另类av| 久久精品国产亚洲aⅴ| 91精品国产自产在线观看永久∴| 香蕉久久夜色精品国产| 国产精品尤物| 色偷偷色偷偷色偷偷在线视频| 香蕉久久久久久久av网站| 国产日韩亚洲| 久久久久久久久丰满| 一区二区三区四区精品视频| 国产精品亚洲欧美日韩一区在线| 美女视频免费精品| 欧美日韩少妇| 麻豆91小视频| 久久性天堂网| 四虎国产精品免费观看| 亚洲免费中文| 精品九九在线| 免费在线观看不卡| 韩日一区二区| 香蕉久久久久久久av网站| 麻豆精品国产91久久久久久| 国产精品亚洲成在人线| 欧美三级网址| 午夜亚洲精品| 亚洲最新无码中文字幕久久| 国产视频亚洲| 麻豆高清免费国产一区| 模特精品在线| 97视频热人人精品免费| 日本亚洲不卡| 亚州av乱码久久精品蜜桃| 欧美91在线| 日本亚洲欧洲无免费码在线| 欧美日韩精品免费观看视欧美高清免费大片| 日韩一二三区在线观看| 免费不卡中文字幕在线| 国产精品xxx| 蜜桃av一区二区在线观看| 青青青免费在线视频| 日本a级不卡| 亚洲成av在线| 精品视频黄色| 国产精品一国产精品k频道56| 亚洲欧美日韩国产一区二区| 亚洲成人不卡| 精品精品99| 欧美伊人久久| 美女国产精品| 91精品一区二区三区综合| 欧美aaaaaa午夜精品| 欧美一级久久| 只有精品亚洲| 亚洲欧美日本日韩| 一本一道久久a久久精品蜜桃| 日韩电影二区| 国产精品一区二区三区av麻| 日韩毛片网站| 日韩精品第二页| 亚洲18在线| 中文字幕亚洲影视| 亚洲免费一区二区| 91久久中文| 国产一区二区精品| 在线视频亚洲| 国产农村妇女精品一二区| 日韩在线欧美| 91tv亚洲精品香蕉国产一区| 日韩精品诱惑一区?区三区| 精品九九久久| 97精品国产| 久久国产乱子精品免费女| 日本aⅴ亚洲精品中文乱码 | 91精品国产乱码久久久久久久 | 国产欧美日韩一区二区三区四区| 伊人久久亚洲| 欧美综合二区| 石原莉奈在线亚洲三区| 电影亚洲精品噜噜在线观看| 精品久久久久中文字幕小说| 麻豆视频一区| 国产成人黄色| 在线天堂资源www在线污| 91精品韩国| 亚洲高清成人| 国产亚洲亚洲| 一区二区高清| 日韩动漫一区| 欧美偷窥清纯综合图区| 欧美精品中文| 国产精品激情电影| 精品中文在线| 最近高清中文在线字幕在线观看1| 日韩高清不卡在线| 国产毛片精品| 国产成人久久精品一区二区三区| 日本免费一区二区三区四区| 久久久久国产| 黄色亚洲免费| 日韩高清一区在线| 国产精品久久久久9999高清| 成人在线黄色| 日韩精品午夜| 巨乳诱惑日韩免费av| 日韩av午夜在线观看| 精品国产乱码| 亚洲激情欧美| 国产丝袜一区| 国产精品任我爽爆在线播放| 国产剧情一区| 亚洲播播91| 亚洲开心激情| 国产一区精品福利| 免费av一区二区三区四区| 亚洲精品三级| 久久精品欧洲| 久久人人精品| 综合欧美亚洲| 国产一区二区三区日韩精品| www成人在线视频| 自拍日韩欧美| 91亚洲无吗| 日韩一区电影| 午夜日本精品| 亚洲91在线| 福利一区二区| 奶水喷射视频一区| 国产精品丝袜在线播放| av资源中文在线| 久久高清免费观看| 欧美精品97| 日韩视频二区| 国产精品久久久久9999高清| 日本欧美不卡| 六月婷婷一区| 精品久久久亚洲| 亚洲精品黄色| 久久视频精品| 亚洲一区二区三区无吗| 国产一区精品福利| 综合激情网...| 亚洲黄色免费看| 亚洲最新av| 久久精品观看| 国产精品久久久久久久久久妞妞| 激情五月色综合国产精品| 国产精品手机在线播放| 激情久久五月| 久久99久久人婷婷精品综合| re久久精品视频| 精品免费视频| 日本亚洲最大的色成网站www| 91精品一区二区三区综合| 久久av中文| 欧美在线资源| 韩国一区二区三区视频| 亚洲精品在线a| 日韩在线中文| 久久精品毛片| 亚洲我射av| 国产国产精品| 98精品视频| 国产精品巨作av| 97se亚洲| 亚洲人成亚洲精品| 在线一区视频| 欧美影院三区| 成人精品视频|