您好,登錄后才能下訂單哦!
小編給大家分享一下Spring Boot中使用Spring Data 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屬性既可。
@Id 是標識出主鍵
@GeneratedValue是指定主鍵的自增方式。
第四,寫查詢方法。
寫一個接口實現JpaRepository接口即可:
JpaRepository后面需要添加兩個參數,一個是實體類,另一個是主鍵的類型。
繼承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后面跟屬性名稱:
復雜查詢
這里就需要我們自己寫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)
看完了這篇文章,相信你對Spring Boot中使用Spring Data JPA連接數據庫的方法有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。