首頁  >  文章  >  Java  >  Spring Boot中使用Spring Data JPA連接資料庫

Spring Boot中使用Spring Data JPA連接資料庫

不言
不言轉載
2018-10-17 16:16:343782瀏覽

這篇文章帶給大家的內容是關於Spring Boot中使用Spring Data JPA連結資料庫,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

以前都是用Mybatis進行資料庫的開發,最近學習Spring Boot之後發現JPA顯得更友好,所以我們就一起來了解一下JPA的原理吧。

Spring Data JPA

JPA簡單介紹

Java持久性API(JPA)是Java的一個規格。它用於在Java物件和關聯式資料庫之間保存資料。
JPA充當物件導向的領域模型和關聯式資料庫系統之間的橋樑。由於JPA只是一個規範,它本身不執行任何操作。它需要一個實現。因此,像Hibernate,TopLink和iBatis這樣的ORM工具實作了JPA資料持久性規格。

Spring Data JPA 是 Spring 基於 ORM 框架、JPA 規範的基礎上封裝的一套JPA應用框架,可使開發者用極簡的程式碼即可實現對資料的存取和操作。它提供了包括增刪改查等的常用功能,且易於擴充!學習並使用 Spring Data JPA 可以大大提高開發效率!

基本查詢

Spring Data JPA已經實作了一部分基礎的資料庫操作,包括基本的增刪改查。

第一,需要在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>

第二,需要在application.properties設定檔中新增資料庫的相關設定及jpa的相關設定

    #配置数据源
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    spring.datasource.url=jdbc:mysql://localhost:3306/springboot
    spring.datasource.username=username
    spring.datasource.password=password
    
    #jpa数据库表格创建的方式,和控制台sql的打印
    jpa.hibernate.ddl-auto=update
    jpa.hibernate.show-sql=true

第三,寫入實體類別。

正常情況下我們在實體類別上加入註解@Entity,就會讓實體類別和表格相關連。
如果其中某個屬性我們不需要和資料庫來關聯只是在展示的時候做計算,只需要加上@Transient屬性既可。

Spring Boot中使用Spring Data JPA連接資料庫

@Id 是標識出主鍵
@GeneratedValue是指定主鍵的自增方式。

第四,寫查詢方法。

寫一個介面實作JpaRepository介面即可:
JpaRepository後面需要增加兩個參數,一個是實體類,另一個是主鍵的類型。

Spring Boot中使用Spring Data JPA連接資料庫

繼承JpaRepository之後,就可以使用簡單的增刪改查功能了。

@Test
public void testBaseQuery() throws Exception {
    Girl girl=new Girl();
    userRepository.findAll();
    userRepository.findOne(1);
    userRepository.save(girl);
    userRepository.delete(girl);
    // ...
}

自訂簡單查詢

因為這只能滿足我們的基本查詢,如果不想按照他給的查詢的話我們就需要自己寫查詢語句了嗎?答案肯定是否定的了。我們還是可以依照JPA的規則產生一些查詢語句的。

自訂的簡單查詢就是根據方法名稱來自動產生SQL,主要的語法是findXXBy,readAXXBy,queryXXBy,countXXBy,getXXBy後面跟著屬性名稱:

Spring Boot中使用Spring Data JPA連接資料庫

Spring Boot中使用Spring Data JPA連接資料庫


#複雜查詢###這裡就需要我們自己寫sql了,我們來看看需要注意的地方。 ###在SQL的查詢方法上面使用@Query註解,如涉及到刪除和修改在需要加上@Modifying.也可以根據需要添加@Transactional 對事物的支持,查詢超時的設定等。 ###注意:如果在寫Query的時候,HQL語句中表名應該是ORM映射的類別名稱。 ###
    //传单个值的时候
    @Query("select u from User u where u.age = ?#{[0]}")
    List<user> findUsersByAge(int age);
    
    //传多个值的时候
    @Query("select u from User u where u.firstname = :#{#customer.firstname}")
    List<user> findUsersByCustomersFirstname(@Param("customer") Customer customer)</user></user>
######

以上是Spring Boot中使用Spring Data JPA連接資料庫的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除