JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。
JPA的主要目标之一就是提供更加简单的编程模型:在JPA框架下创建实体和创建Java 类一样简单,没有任何的约束和限制,只需要使用 javax.persistence.Entity进行注释,JPA的框架和接口也都非常简单,没有太多特别的规则和设计模式的要求,开发者可以很容易的掌握。JPA基于非侵入式原则设计,因此可以很容易的和其它框架或者容器集成。
JPA的查询语言是 面向对象而非面向数据库的,它以面向对象的自然语法构造查询语句,可以看成是Hibernate HQL的等价物。JPA定义了独特的 JPQL(Java Persistence Query Language),JPQL是EJB QL的一种扩展,它是针对实体的一种查询语言,操作对象是实体,而不是关系数据库的表,而且能够支持批量更新和修改、JOIN、GROUP BY、HAVING 等通常只有 SQL 才能够提供的高级查询特性,甚至还能够支持 子查询。并且JPA 中能够支持 面向对象的高级特性,如类之间的继承、 多态和类之间的复杂关系,这样的支持能够让开发者最大限度的使用面向对象的模型设计企业应用,而不需要自行处理这些特性在关系数据库的持久化。下面进入本文正题
一、引入jpa与h2相关依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency> -->
<!-- h2内存数据库 -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.197</version>
</dependency>
<!-- 实现数据绑定,省略get+set方法 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.18</version>
</dependency>二、application.properties进行配置
###############################jap配置############################
#spring.jpa.database=h2
#spring.jpa.hibernate.ddl-auto=update
#spring.jpa.show-sql=true
#spring.data.jpa.repositories.enabled=true
#spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
#spring.jpa.generate-ddl=true
################################h2配置############################
#url有以下几种形式:
# jdbc:h2:E:*/database 会持久化到磁盘文件,但是是单连接
# jdbc:h2:tcp://IP/database 通过远程连接的方式
# jdbc:h2:mem:database 直接在内存中,程序只要重启就会消失
spring.datasource.url=jdbc:h2:mem:h2test
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=zbook
spring.datasource.password=zbook
#程序启动后会初始化这些脚本文件
spring.datasource.schema=classpath:db/schema.sql
spring.datasource.data=classpath:db/data.sql
spring.h2.console.settings.web-allow-others=true
spring.h2.console.path=/h2-console/h2test
spring.h2.console.enabled=true三、编写一个对应数据库实体
@Entity
@Table(name = "jpa_test")
@Data
public class JpaTest {
@Id
private int id;
private String name;
private String sex;
}四、service直接继承jpa提供的接口
public interface H2Service extends JpaRepository<JpaTest,Integer> {
}五、直接在需要使用的类中注入H2Service就可以实现查询功能了,为了省事直接在controller中引用
@RestController
@RequestMapping("h2")
public class H2Controller {
@Autowired
private H2Service service;
@RequestMapping("/test")
public String jpaTest(){
return service.findAll().toString();
}以上就是在springboot中jpa的最最最基本操作了,还有很多非常丰富的功能等着我们在实践中更好的运用。 版权声明:本文为zht741322694原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。