springboot(六):spring data jpa使用一

spring data jpa 、hibernate 和jpa 三者之間的關係 :html

  JPA是規範,Hibernate除了做爲ORM框架以外,它也是一種JPA實現; Spring Data JPA 是在JPA規範的基礎下提供了Repository層的實現; ORM框架都實現了JPA規範,可是在不一樣ORM框架之間切換是須要編寫的代碼有一些差別,而經過使用Spring Data Jpa可以方便你們在不一樣的ORM框架中間進行切換而不要更改代碼。而且Spring Data Jpa對Repository層封裝的很好,能夠省去很多的麻煩。java

在pom.xml里加入以下依賴:

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

 

建立dto對象:

建立操做數據的Repository對象

 

JpaRepository<T, ID extends Serializable> extends PagingAndSortingRepository<T, ID>, QueryByExampleExecutor<T>mysql

 

從上面能夠看出,CustomerRepository繼承了JpaRepository以後就擁有了CrudRepository、QueryByExampleExecutor、PagingAndSortingRepository的基本能力了,包括基本的增刪改查都有了。git

數據庫配置

須要在application.properties加上以下參數:github

spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.properties.hibernate.hbm2ddl.auto=create

 

這裏要注意到最後一行參數spring.jpa.properties.hibernate.hbm2ddl.auto=create,這個參數是爲了方便處理數據庫表,該屬性的值通常有以下幾個:spring

validate 加載hibernate時,驗證建立數據庫表結構
create 每次加載hibernate,從新建立數據庫表結構,這就是致使數據庫表數據丟失的緣由。
create-drop 加載hibernate時建立,退出是刪除表結構
update 加載hibernate自動更新數據庫結構

 教程上寫create-drop,就是每次啓動都要從新建立表,若是表比較少還好,可是多了就是麻煩,還有初始化數據,我這裏寫的是create,只完成表的初始化建立便可,後面就不須要關注了。基本的配置已經完成了。 sql

demo示例

由於比較簡單,這裏只是簡單寫幾個簡單的方法進行測試,這裏爲了簡單方便起見,我講測試的方法放到Controller內——Customercontroller。數據庫

1)、save方法,初始化,保存Customer數據**

 zapi

 在瀏覽器房屋:http://localhost:8080/customer/save,數據保存數據數組

JPA系列:建立查詢

一、在CustomerRepository接口中,有以下定義:

二、在CustomerController代碼中使用CustomerRepository進行數據查詢操做。以下:

三、建立查詢的方法名命名指南

同時,查詢建立還提供了一些基本的方法命名規則,以下:

其中:In和NotIn也將集合的任何子類做爲aparameter和數組或varargs。對於相同邏輯操做符的其餘語法版本

參考:
官方文檔:https://docs.spring.io/spring-data/jpa/docs/current/reference/html
API官方文檔:http://docs.spring.io/spring-data/data-jpa/docs/current/api/
JPQL文檔:http://www.blogjava.net/calmJava/archive/2011/04/01/347450.html

DEMO示例:https://github.com/icnws/spring-data-jpa-demo

相關文章
相關標籤/搜索