idea软件自身提供了方法用于实体对象的生成,可借助此方法来进行无需单独安装插件。在DataBase窗口中点击要操作的表右键打开,可看到如下:

Generate POJOs.groovy文件提供了相关实体生成时展示的内容,我们可根据自身需求再进行调整,比如添加注释、注解、包等内容。

com.intellij.database.util.DasUtil包中会提供很多相关方法,可自行查看。
import com.intellij.database.model.DasTable
import com.intellij.database.util.Case
import com.intellij.database.util.DasUtil/** Available context bindings:*   SELECTION   Iterable<DasObject>*   PROJECT     project*   FILES       files helper*/packageName = "com.sample;"
typeMapping = [(~/(?i)int/)                      : "long",(~/(?i)float|double|decimal|real/): "double",(~/(?i)datetime|timestamp/)       : "java.sql.Timestamp",(~/(?i)date/)                     : "java.sql.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('utf-8') { out -> generate(out, className, fields,table) }
}def generate(out, className, fields,table) {out.println "package $packageName"out.println ""//增加作者信息out.println "\t/**"out.println  "\t * @description"+table.getComment()out.println  "\t * @author 杨洋"out.println  "\t * @date "+new Timestamp(System.currentTimeMillis())out.println  "\t */"out.println ""out.println "@Data"out.println "@Table(name = \""+table.getName()+"\")"out.println "public class $className {"out.println ""fields.each() {// 输出注释if (it.comment!="") {out.println "\t/**"out.println "\t * ${it.comment.toString()}"out.println "\t */"}//添加column注解if(it.isPkey){out.println "  @Id"}if (it.annos != "") out.println "  ${it.annos}"out.println "  @Column(name = \"${it.filed}\")"out.println "  private ${it.type} ${it.name};"}out.println ""fields.each() {out.println ""out.println "  public ${it.type} get${it.name.capitalize()}() {"out.println "    return ${it.name};"out.println "  }"out.println ""out.println "  public void set${it.name.capitalize()}(${it.type} ${it.name}) {"out.println "    this.${it.name} = ${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() }.valuefields += [[name : javaName(col.getName(), false),type : typeStr,filed: col.getName(),//字段说明,此处采用utf-8无效依然会报错,在上面的输出流中修改 //(new String(col.getComment().getBytes("utf-8")))comment: col.getComment(),  isPkey: DasUtil.isPrimary(col),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自动生成bean实体对象相关推荐

  1. mybatis自动生成bean

    2019独角兽企业重金招聘Python工程师标准>>> java -jar ./mybatis-generator-core-1.3.2.jar -configfile ./conf ...

  2. 利用Eclipse的JPA自动生成注解实体

    新公司用的SSH(springmvc)框架,看代码的时候,发现没有hbm.xml文件,全部使用的注解形式.在一次闲聊的时候问同事,这么多entity  写起来不麻烦么.同事说根据数据库自动生成的.于是 ...

  3. Eclipse自动生成返回值对象与补全与加注释

    1.Eclipse自动生成返回值对象,将光标放在;后面按ctrl+1,弹出 Assign statement to new local varible,enter即可. 2.移动代码块快捷键:Alt+ ...

  4. Android,使用MMKV存储Bean实体对象

    1. MMKV简介 MMKV是一个轻量级的本地存储技术,具有比sharedPreferences更高的性能,是微信开源的一种持久化技术. 2. 存储Bean实体对象 网上有很多使用实例,但都没有实体类 ...

  5. 小d课堂mysql_小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_2-6.Mysql逆向工程效率神器之使用IDE自动生成Java实体类...

    笔记 6.Mysql逆向工程效率神器之使用IDE自动生成Java实体类 简介:实战使用IDE根据Mysql自动生成java pojo实体类 1.IDEA连接数据库 菜单View→Tool Window ...

  6. 利用反射自动封装成实体对象

    利用此方法的时候需要传递的参数的名称,必须以行号结尾,去掉行号就是属性名称,比如页面传递name+rowNo,那么实体对象的属性名应该为name.代码如下 //获取页面数据,自动封装成bean对象pu ...

  7. 已解决:springboot 用mybatis-generator自动生成bean和dao

    1.在pom.xml里添加maven插件: <plugin> <groupId>org.mybatis.generator</groupId> <artifa ...

  8. JPA学习笔记---JPA实体Bean的建立+配置文件+junit测试+自动生成(对应实体Bean的)数据库表+插入数据

    2013-02-03 1.第一个JPA:JPA的配置文件的配置 a.新建web项目:JPATest b.在src目录下新建META-INF文件夹 c.在META-INF文件夹下:新建   persis ...

  9. idea package自动生成_IDEA自动生成pojo实体类模板

    -由于直接用idea的自动实体生成,他的包名是不会变的,而且类型也不是自己想要的,这里把我一直用的这份模板分享出来 点击你需要的表右键-->选择下图的Go to Scripts Director ...

最新文章

  1. TensorRT Samples: MNIST(Plugin, add a custom layer)
  2. 【Linux_Fedora_应用系列】_3_如何利用Smplayer播放WMV格式的文件
  3. 国内国外虚拟主机的对比
  4. python list分成多个_Python3 把一个列表按指定数目分成多个列表的方式
  5. CSDN-markdown编辑器(保存自CSDN官方)
  6. Win2D 入门教程 VB 中文版 - 防止内存泄漏
  7. linux中samba详解,详解linux系列之samba的安装及配置
  8. python indices_python numpy triu_indices函数
  9. 使用 jQuery Mobile 与 HTML5 开发 Web App (十) —— jQuery Mobile 默认配置与事件基础
  10. js+css3实现旋转效果
  11. 终于等到你:国内***团队360Vulcan公布iOS 12.1越狱漏洞细节
  12. JAVA中两个数组比较可以使用Arrays.equals()
  13. android 5.0 屏幕录制,Android 5.0+ 视频录制 ScreenCapture
  14. 动听百年:音乐播放器发展沉浮史
  15. FANUC 工业机器人编程与联网
  16. 在谷歌浏览器上面安装AxueRP插件。
  17. ShareSDK 抖音平台注册
  18. MS-DOS基本操作汇总
  19. 树莓派智能家居项目整合(包含语音、socket、火灾、摄像头线程)
  20. android获取整体存储空间大小,Android 获取剩余存储空间

热门文章

  1. 如何在数字前加上0,如将1变成01
  2. 什么是数字化转型? 怎样算是转型?
  3. 显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn
  4. MySQL 8.0原理与实战一网打尽,甲骨文数据库专家硬刚5年之作
  5. Matlab笔记——License Manager Error -9解决办法——matlab反激活
  6. 爱阅书香之书源制作 POST请求方式
  7. Java学习----二维数组排序
  8. 喜大普奔!GitHub App 终于支持中文了,可尝鲜下载体验!
  9. Matlab解决脚本中中文乱码问题
  10. 纯css实现文字跳动的动画效果