Spring Data JPA

执拗者福轻,而圆融之人其禄必厚;

操切者寿夭,而宽厚之士其年必长。

故君子不言命。养命即所以立命;

亦不言天,尽人自可以回天

简介

Spring Data的宗旨是Spring环境的基础上,建立一套既有统一风格,又保留底层数据存储特性的数据访问编程模型。

Spring Data让数据访问技术(例如,关系型和非·关系型数据库,MapReduce框架及基于云的数据服务)变得更加容易。

Spring Data是一个聚合项目,包括很多子项目。

Spring Data JPA就是其中之一。

Spring Data组件

以下是Spring Data已经发布的相关组件:

Spring Data Commons

Spring Data JPA

Spring Data KeyValue

Spring Data LDAP

Spring Data MongoDB

Spring Data Redis

Spring Data REST

Spring Data for Apache Cassandra

Spring Data for Apache Geode

Spring Data for Apache Solr

Spring Data for Pivotal GemFire

Spring Data Couchbashe(社区)

Spring Data Elasticsearch(社区)

Spring Data Neo4j(社区)

这些项目中很多都是由Spring团队和对应技术的第三方公司一起开发的

通过名字,我们基本上就能知道这些组件的具体用途了。

我们不再过多介绍这些组件了,重点来讨论Spring Data JPA

主要功能特性

Spring Data JPA具有非常强大的功能和很好的易用性,其主要的功能特性如下:

丰富的数据操作和自定义对象映射抽象

基于方法名和衍生的动态查询

使用基类封装公共属性

无感知的自动审计

支持自定义数据操作

可以非常方便地与Spring Boot集成(使用JavaConfig或XML)

可以通过配置Spring MVC进行集成

跨存储持久化的实验性支持

这里我们先对Spring Data JPA有一个总体认识,然后在接下来的内容里慢慢展开

常用注解

先来熟悉一下Spring Data JPA中的常用注解,如表6-1所示。

表6-1Spring Data JPA中的常用注解

在这些注解中,一部分是JPA中自带的,一部分是Spring Data中特有的。

这里先简单了解一下它们,后面用到相应注解时,再详细讲解。

集成

经过一番介绍,我们可以动手实践一下了。

基础准备

Spring Data JPA是持久层组件,所以在使用它之前,需要为我们的程序创建一个名为springbooy的库。

当然,你也可以选择自己喜欢的名称,只需要记得将数据库连接配置成设置的名称即可。

添加依赖

添加Spring Data JPA依赖很简单,只需要一个Starter即可。

除了Spring Data JPA依赖,我们还需要添加一个MySQL连接器的依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</depenedency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime<scope>
<dependency>

 添加配置

接下来需要增加一些配置,才能让我们的工程访问到数据库。

在application.yml文件中添加如下配置:

spring:
    # 数据库配置
    datasource:
        url:jdbc:mysql://127.0.0.1:3306/springboot?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&characterEncoding=utf-8
        driver-class-name:com.mysql.cj.jdbc.Driver
        username:root
        password:123456
    # JPA配置
    jpa:
        hibernate:
            ddl-auto:update
            show-sql:true
            database-platform:org.hibernate.dialect.MySQL5InnoDBialect
    # Web配置
    server:
        port:8080
        servlet:
            context-path:/springboot
            session:
                timeout:60

数据库配置介绍如下

url:数据库地址与参数

driver-class-name:连接数据库的驱动(来自上面的mysql-connector)

username:数据库用户名

password:数据库密码

上面这4项配置比较简单,稍微有点编程经验的人一看就能明白是什么,这里就不过多介绍。

JPA配置介绍如下.

show-sql很简单,为true代表打印SQL语句,为false则代表不打印

database-platform也不难,用来1指定使用哪种MySQL存储引擎,这里我们使用InnoDB

下面详细说一下ddl-auto这个配置,它有4个值可选,具体含义如下。

create:程序每次启动都会重新创建表(程序启动时会执行d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值