Spring Boot JPA实体类idea自动生成 其一

marioplus12

2018.09.17 19:29* 字数 138 阅读 762评论 0喜欢 2

  1. view -> Tool Windows -> Database

    image.png

  1. + -> Data source -> MySQL

  2. 配置数据库信息

    image.png

  3. 建立存放实体的包

    image.png

  4. 导入必要maven依赖

        <!--mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.21</version></dependency><!--jpa--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><!-- lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency>
  1. 在database视图区域任意地方右键,然后Scripted Extensions -> Go to Scripts Directory

    image.png

  2. 复制下面的文件到6中跳转的文件夹中

  • Generate POJOs.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/** Available context bindings:*   SELECTION   Iterable<DasObject>*   PROJECT     project*   FILES       files helper*/
//修改为你的实体类的包名
packageName = "com.demo.jpa.entity;"
typeMapping = [(~/(?i)int/)                      : "Long",(~/(?i)float|double|decimal|real/): "Double",(~/(?i)bool|boolean/)             : "Boolean",(~/(?i)datetime|timestamp/)       : "java.util.Date",(~/(?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 && it.getKind() == ObjectKind.TABLE }.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(out, table, className, fields) }
}def generate(out, table, className, fields) {def tableName = table.getName()out.println "package $packageName"out.println ""out.println "import lombok.Data;"out.println ""out.println "import javax.persistence.*;"out.println "import java.io.Serializable;"out.println ""out.println "@Data"out.println "@Entity"out.println "@Table(name = \"$tableName\")"out.println "public class $className  implements Serializable {"out.println ""// 判断自增if ((tableName + "_id").equalsIgnoreCase(fields[0].colum) || "id".equalsIgnoreCase(fields[0].colum)) {out.println "\t@Id"out.println "\t@GeneratedValue(strategy=GenerationType.IDENTITY)"}fields.each() {if (it.annos != "") out.println "  ${it.annos}"if (it.colum != it.name) {out.println "\t@Column(name = \"${it.colum}\")"}out.println "\tprivate ${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() }.valuefields += [[name : javaName(col.getName(), false),colum: col.getName(),type : typeStr,annos: ""]]}
}def javaName(str, capitalize) {def s = str.split(/(?<=[^\p{IsLetter}])/).collect { Case.LOWER.apply(it).capitalize() }.join("").replaceAll(/[^\p{javaJavaIdentifierPart}]/, "_").replaceAll(/_/, "")capitalize || s.length() == 1 ? s : Case.LOWER.apply(s[0]) + s[1..-1]
}
  1. 在database视图区域选择你想要生成的表,然后Scripted Extensions -> Generate POJOs.groovy
    可以使用ShiftCtrl多选

    image.png

  2. 弹出的文件选择框中,选择生成位置

    image.png

  3. 生成代码

package com.demo.jpa.entity;import lombok.Data;import javax.persistence.*;
import java.io.Serializable;@Data
@Entity
@Table(name = "pv")
public class Pv  implements Serializable {@Id@GeneratedValue(strategy=GenerationType.IDENTITY)private Long id;private String ip;@Column(name = "channel_type")private Long channelType;private String openid;@Column(name = "create_time")private java.util.Date createTime;}

生成成功提示

Spring Boot JPA实体类idea自动生成 其一-https://www.jianshu.com/p/44bb7e25f5c7相关推荐

  1. Spring Data Jpa 实体类自动创建数据库表失败解决

    先说一下我遇到的这个问题,首先我是通过maven创建了一个spring boot的工程,引入了Spring data jpa,结果实体类创建好之后,运行工程却没有在数据库中自动创建数据表. 找了半天发 ...

  2. Spring Boot(九)Swagger2自动生成接口文档和Mock模拟数据

    一.简介 在当下这个前后端分离的技术趋势下,前端工程师过度依赖后端工程师的接口和数据,给开发带来了两大问题: 问题一.后端接口查看难:要怎么调用?参数怎么传递?有几个参数?参数都代表什么含义? 问题二 ...

  3. [快速入门]Spring Boot+springfox-swagger2 之RESTful API自动生成和测试

    Swagger是自动生成 REST APIs文档的工具之一.Swagger支持jax-rs, restlet, jersey.springfox-swagger是Spring生态的Swagger解决方 ...

  4. Spring boot JPA+Gradle+QueryDSL 完美配置生成Q文件依赖

    1. 环境(理论上不限) IDEA 2019.3.5 springboot 2.3.0 gradle 6.3 querydsl 4.2.1 JDK 1.8 2. 核心配置(build.gradle ) ...

  5. IDEA 生成 JPA实体类

    文章目录 1.创建工程 2.连接数据源 3.生成`JPA`实体类 4.生成实体类结果 1.创建工程 使用Maven来构建工程,为了简化创建步骤 创建一个新工程不包含任何Maven模板,[按需添加] 命 ...

  6. Spring Boot + JPA +MySQL 数据操作及示例环境搭建(自动建表)

    JPA 是Java官方提供的数据持久的统一API , 是一个接口标准,并没有具体实现. JPA的实现常见的有: Hibernate TopLink (Eclipse Link) Spring Boot ...

  7. 使用Spring Boot JPA Specification实现使用JSON数据来查询实体数据

    文章目录 使用Spring Boot JPA Specification实现使用JSON数据来查询实体数据 需求概要 JSON 结构的设计 使用策略模式执行不同的查询条件 构造查询条件 主逻辑具体的代 ...

  8. (转)Spring Boot(五):Spring Boot Jpa 的使用

    http://www.ityouknow.com/springboot/2016/08/20/spring-boot-jpa.html 在上篇文章Spring Boot(二):Web 综合开发中简单介 ...

  9. Spring Boot JPA 2.7.2

    icon: edit date: 2022-01-02 category: CategoryA tag: tag A tag B star: true Spring Boot JPA 2.7.2 项目 ...

最新文章

  1. 总结六条对我们学习Linux系统有用的忠告
  2. find、sed、awk、grep命令总结
  3. 计算机的云是什么意思_高考倒计时!现在学什么专业好?答案是……
  4. OpenGL天空游戏
  5. [MOSS开发]:通过简单BUG跟踪Demo阐述用户控件对列表的操作
  6. 阿里云 linux mysql数据库_Linux Mysql数据库安全配置
  7. 如何pspice模型转成saber模型
  8. 3给定关键字不在字典中_Python龙珠训练营五:数据结构之字符串、字典
  9. 【结巴分词】浅谈结巴分词算法原理
  10. 使用.net开发手机管理软件 (九) 短信部分——PDU简介及其格式
  11. mac新手入门:如何在Mac上禁用通知预览?
  12. 出招挽留欧盟公民 英国政府推出“身份申请App”
  13. Java从入门到精通 第21章 Annotation
  14. 面试题之Servlet工作原理
  15. Linux 设置Dlan服务器
  16. python 哈希_python实现哈希集合
  17. firefly-rk3288点mipi屏TV080WUM-NL0有显示无背光
  18. 用算法判断输入的一个数是几位数
  19. 12对胸椎对应体表标志_腰椎的体表标志_第一至第五腰椎怎么定位相应体表标志怎么对应_中国武警总医院...
  20. 申请https证书的过程

热门文章

  1. mysql聚合函数查询,子查询,关联查询
  2. 云队友丨张小龙最新公开课:不被看好的事情,才有戏
  3. android view设置按钮颜色_建议收藏!最全 Android 常用开源库总结!
  4. 2022中国制造业行业研究报告:(现状、驱动因素、外流现象、发展趋势)27页可下载
  5. WCF各种banding支持的类型
  6. android sensor之重力小球
  7. 数人云|PaaS Innovation 2017开幕在即,共襄技术演进与商业碰撞盛宴
  8. 如何将本地的项目推送至git仓库
  9. 挖潜无极限—数据挖掘技术与应用热点扫描
  10. error: #error “Please include Eigen/Geometry instead of including headers inside the src directory d