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
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
|
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
由於比較簡單,這裏只是簡單寫幾個簡單的方法進行測試,這裏爲了簡單方便起見,我講測試的方法放到Controller內——Customercontroller。數據庫
zapi
在瀏覽器房屋:http://localhost:8080/customer/save,數據保存數據數組
同時,查詢建立還提供了一些基本的方法命名規則,以下:
其中: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