Springboot 整合 JPA
简介
JPA
即JAVA Persistance API
是一种官方提出的ORM
规范。
什么是ORM?
ORM
即Object-Relational Mapping
。他的作用是在关系型数据库和对象之间作一个映射,这样我们就不需要使用具体的sql
语句 ,而是像平常一样操作对象即可。例如Hibernate
就是很著名的ORM
框架
spring-data-jpa
便是spring
基于Hibernate
开发的一个JPA
框架。极大的简化了JPA
的写法,可以非常简单的实现CRUD
和分页操作。
复杂的sql操作也可以使用
@Query("SELECT * FROM TABLE WHERE user_name = :name")
,不过复杂的sql操作还是建议整合mybatis或者mybatis-plus。
使用示例
建表
我们这里首先简单构建customer
表,该表有id
,name
,age
,create_time
,modify_time
属性,其中主键为id
,递增。
DROP TABLE IF EXISTS `customer`;
CREATE TABLE `customer`(
`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`name` VARCHAR(64) DEFAULT NULL COMMENT '姓名',
`age` SMALLINT(3) DEFAULT NULL COMMENT '年龄' ,
`create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`modify_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8;
pom.xml
因为要连接数据库,并且使用spring data jpa
,所以添加如下依赖
<!-- 数据库连接 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!--jpa-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
application.yml
Springboot
参数配置
#端口设置
server:
port: 8090
#数据源设置
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
#设置编码和时区
url: jdbc:mysql://localhost:3306/springboot?characterEncoding=utf-8&serverTimezone=GMT%2B8
username: root
password: 1234
#jpa设置
jpa:
#显示sql语句
show-sql: true
#format sql 语句
hibernate:
naming:
#驼峰匹配
physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy
#根据实体类自动更新表结构