Spring Boot (6) Spring Data JPA

JPA

  全称Java Persistence API,JPA通过JDK 5.0注解或xml描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中

  JPA是sun官方提出的java持久化规范,它为java开发人员提供了一种对象/关系映射工具来管理java应用中的关系数据。

    持久化:把数据(内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要作用是将内存中的对象存储在数据库中,或磁盘文件中,xml文件中等。jdbc,io都是持久化机制。

    规范:所谓的规范就是明文规定或约定俗成的标准,如道德规范,技术规范等。

    持久化规范就是sun针对持久化这一层操作指定的规范。

Hibernate

  hibernate是一个开源的对象关系映射框架,它对jdbc进行了封装,将pojo与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成sql语句,自动执行,使java程序员可以像操作对象一样操作数据库。

Spring Data

  spring data 是一个用于简化数据库访问,并支持云服务的开源框架,主要目标是使数据库的访问变的方便快捷,并支持map-reduce框架和云计算数据服务,此外,他还支持基于关系型数据库的数据服务,如Oracle RAC等。对于拥有海量数据的项目,可以使用Spring Data 来简化项目的开发,就如spring framework 对jdbc 、orm的支持一样,spring data会让数据的访问变的更加方便。

Spring Data JPA

  可以极大简化JPA的写法,可以在几乎不用写实现的情况下,实现对数据的访问和操作。除了增删改查外,还包括分页、排序等一些常用功能。

  spring data 是一个开源框架,在这个框架中spring data jpa 只是这个框架中的一个模块,所以名称才叫 spring data jpa。如果单独使用jpa开发,你会发现这个代码量和jdbc开发一样有点烦人,所以spring data jpa的出现就是为了简化jpa的写法,让你只需要编写一个接口继承一个类就可以实现增删改查操作了。

JPA/Hibernate关系

  JPA是一种规范,而hibernate是它的一种实现。所以使用JPA的一个好处是,可以更换实现而不必改动太多代码。

首先在pom.xml中添加依赖

       <!--mysql数据驱动 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!--spring data jpa -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

在application.properties中配置连接

# mysql连接
spring.datasource.url=jdbc:mysql://localhost:3306/david2018_db?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=1234
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.max-active=20
spring.datasource.max-idle=8
spring.datasource.min-idle=8
spring.datasource.initial-size=10

# jpa配置
spring.jpa.database = MYSQL
# 显示sql语句
spring.jpa.show-sql = true
# Hibernate 语句策略 (create, create-drop, update)
spring.jpa.hibernate.ddl-auto = update
# 创建表结构
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

    

猜你喜欢

转载自www.cnblogs.com/baidawei/p/9103950.html