本文介绍在IDEA中如何通过逆向工程生成数据库表对应的实体类(entity)。
JPA逆向工程是什么
所谓的逆向工程就是通过数据库的结构生成代码,只要是持久层框架基本都提供逆向工程支持。
为什么需要逆向工程?
回想一下以前我们是自己手动的在实体类上标注@Entity注解,以标识这是一个JPA规范的实体类,标注@Table,以标识该实体类是和哪一个数据库表相关联,标注@Id,以标识这是一个与数据库主键相对应的字段,还有@GenerateValue、@Column、@JoinColumn、@JoinTable等等,这些注解机会在每一个实体类中都要出现,而且基本没什么可变的配置,仅仅只是将实体类和数据库表对应起来,而且随着项目的开发,数据库表会达到几十张、几百张,那么还是我们手动的创建实体类,再标注解吗?显然不可行,可以将这些繁杂,凡有不可无之的代码编写交给逆向工程来完成,将我们从这项重任务中解放出来。
逆向工程配置
第一步:创建一个springboot项目
编写项目名和域名
选择需要的功能插件
完成创建
第二步:添加JPA模块
application.properties添加配置
spring.datasource.tomcat.max-active=100
spring.datasource.tomcat.max-idle=200
spring.datasource.tomcat.initialSize=20
spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect
spring.jpa.show-sql=true
spring.http.encoding.force=true
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
server.tomcat.uri-encoding=UTF-8
第三步:添加Persistence视图窗口
第四步:打开逆向工程界面
第五步:细节配置
第六步:查看实体类
其他
appplication.properties可以改后缀为yml
其配置文件改为如下:
server:
port: 8080
servlet:
context-path: /hospital
spring:
datasource:
url: jdbc:mysql://192.168.96.2:3306/hospital?serverTimezone=GMT%2B8
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: 123456
jpa:
database-platform: org.hibernate.dialect.MySQL5Dialect
show-sql: true
open-in-view: true