-由于直接用idea的自动实体生成,他的包名是不会变的,而且类型也不是自己想要的,这里把我一直用的这份模板分享出来

点击你需要的表右键——>选择下图的Go to Scripts Directory——>在项目的目录就会显示,把以下的模板替换进去即可。

模板:

import com.intellij.database.model.DasTable

import com.intellij.database.util.Case

import com.intellij.database.util.DasUtil

/*

* Available context bindings:

* SELECTION Iterable

* PROJECT project

* FILES files helper

*/

typeMapping = [

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

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

(~/(?i)datetime|timestamp/) : "java.util.Date",

(~/(?i)date/) : "java.util.Date",

(~/(?i)time/) : "java.sql.Time",

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

]

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 = calcFields(table)

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

}

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

out.println "package " + dir.getAbsolutePath().split("main.java.")[1].replace("\\", ".").replaceAll("/", ".") + ";"

out.println ""

out.println "import lombok.Data;"

out.println ""

out.println "@Data"

out.println "public class $className {"

out.println ""

fields.each() {

if (it.annos != "") out.println " ${it.annos}"

out.println " private ${it.type} ${it.name};"

}

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

fields += [[

name : javaName(col.getName(), false),

type : typeStr,

annos: ""]]

}

}

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]

}

效果如图:

——感谢浏览♥

idea package自动生成_IDEA自动生成pojo实体类模板相关推荐

  1. MyBatis的逆向工程工具,自动生成数据库对应的POJO实体类、mapper接口、增删改查mapper.xml文件

    下载MyBatis的逆向工程工具,并解压缩到一个不包含中文字符的文件夹下,我直接放到了D盘下,下载地址:MyBatis逆向工程工具下载 如何使用MyBatis的逆向工程工具 下载之后使用idea在一个 ...

  2. 用MyEclipse自动生成hibernate映射文件和实体类

    创建web工程,使用Hibernate的时候,在工程里一个一个创建实体类太麻烦,浪费时间,现在教大家如何用MyEclipse自动生成Hibernate映射文件及实体类 方法/步骤 1 创建数据库,创建 ...

  3. CodeSmith生成SQL Server视图的实体类脚本/对应的生成模板

    C#生成sql视图的实体类 using System; using System.Text; using CodeSmith.Engine; using SchemaExplorer; using S ...

  4. idea package自动生成_Idea 自动生成Junit单元测试插件JunitGenerator

    JunitGenerator Idea中提供了可以自动生成Junit单元测试的插件,JunitGenerator.本篇文章将介绍如何在idea中安装.配置及使用JunitGenerator,以方便大家 ...

  5. idea + groovy + mybatis 自动生成 Dao、mappings 和 实体类

    背景 在 windows 系统中,idea 在 C:\Users\用户名\.IntelliJIdea2018.2\config\extensions\com.intellij.database\sch ...

  6. IntelliJ IDEA下自动生成Hibernate映射文件以及实体类

    转自:https://blog.csdn.net/qq_34197553/article/details/77718925 1.构建项目并添加项目结构配置以及配置初始参数 1.1.如图将基本的架子搭建 ...

  7. springboot中使用generator自动生成mybatis的接口、实体类和映射文件-springboot学习笔记

    在使用mybatis的时候,我们需要自己建立实体类.接口和对应的映射文件.一个字母写错就可能导致运行不起来,很是麻烦.使用generator可以帮助我们自动生成上述的文件. 首先,新建一个spring ...

  8. html单页面js完成表数据库自动生成带注释的java实体类和简单的增删改查sql

    支持Mysql和Oracle,mybatis和ibatis可选.功能主要还是字符串的拼凑完成的,把用把表信息复制过来或者增加后台,就可以生成简单的增删改查了 临时体验点这里 我也不知道地址什么时候失效 ...

  9. Eclipse利用Database Connections连接数据库并实现从数据库逆向生成Hibernate带注解的实体类

    转自: https://blog.csdn.net/qq_37844454/article/details/84194179 https://www.cnblogs.com/pretty-sunshi ...

最新文章

  1. Kubernetes的四种用户部署场景
  2. webservice 的datetime不能为null_用.net发布一个简单的webservice
  3. list java removeif_java – removeIf()方法.从List中删除所有元素
  4. [html] html5中的meta标签renderer有什么作用?
  5. 解决“Cmake error :generator: Ninja“问题
  6. 【题解】洛谷P3435 [POI2006] OKR-Periods of Words(KMP)
  7. ajax调用后台java方法,jquery ajax再次封装,前台调用后台java方法直接返回数据
  8. Nginx 为什么快到停不下来?
  9. ActiveX控件属性
  10. linux c select函数返回值,linux c中select使用技巧
  11. 高考改变命运,来自一个湖南贫困村的真实样本
  12. 【数字信号处理】fft幅频特性和相频特性理解
  13. LU分解算法(串行、并行)
  14. 苹果6能解掉id锁吗_iPhone进水保修吗?苹果官方正式回应了
  15. from StyleFrame import StyleFrame, Styler ModuleNotFoundError: No module named ‘StyleFrame‘
  16. 2022数据安全法律法规标准关注文件整理
  17. pytorch中view()和flatten
  18. C语言实现斐波那契数列。
  19. 虚拟变量在模型中的作用
  20. Exchange 2016的MAPI over HTTP简介

热门文章

  1. vue项目H5 跳转微信小程序
  2. CentOS 7 多网卡绑定
  3. 云ubuntu服务器配置
  4. APM终端用户体验监控分析(下)
  5. QueryPerformanceFrequency使用方法--Windows高精度定时计数
  6. python中options类_Python的OptionParser模块
  7. [Git] 关于refs/for/ 和refs/heads/
  8. 三维点云学习(4)7-ransac 地面分割+ DBSCAN聚类比较
  9. 三维点云学习(1)上-PCA主成分分析 法向量估计
  10. k8s glusterfs mysql_k8s使用glusterfs实现动态持久化存储