十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
小編給大家分享一下Spring Boot中使用Spring Data JPA連接數(shù)據(jù)庫的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
創(chuàng)新互聯(lián)公司主要從事網(wǎng)站設(shè)計制作、成都網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)臨安,十載網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108
Spring Data JPA
JPA簡單介紹
Java持久性API(JPA)是Java的一個規(guī)范。 它用于在Java對象和關(guān)系數(shù)據(jù)庫之間保存數(shù)據(jù)。
JPA充當(dāng)面向?qū)ο蟮念I(lǐng)域模型和關(guān)系數(shù)據(jù)庫系統(tǒng)之間的橋梁。由于JPA只是一個規(guī)范,它本身不執(zhí)行任何操作。它需要一個實現(xiàn)。因此,像Hibernate,TopLink和iBatis這樣的ORM工具實現(xiàn)了JPA數(shù)據(jù)持久性規(guī)范。
Spring Data JPA 是 Spring 基于 ORM 框架、JPA 規(guī)范的基礎(chǔ)上封裝的一套JPA應(yīng)用框架,可使開發(fā)者用極簡的代碼即可實現(xiàn)對數(shù)據(jù)的訪問和操作。它提供了包括增刪改查等在內(nèi)的常用功能,且易于擴展!學(xué)習(xí)并使用 Spring Data JPA 可以極大提高開發(fā)效率!
基本查詢
Spring Data JPA已經(jīng)實現(xiàn)了一部分基礎(chǔ)的數(shù)據(jù)庫操作,包括基本的增刪改查。
第一,需要在pom.xml里面引入相關(guān)的依賴。
MySQL mysql-connector-java org.springframework.boot spring-boot-starter-data-jpa
第二,需要在application.properties配置文件中添加數(shù)據(jù)庫的相關(guān)配置及jpa的相關(guān)配置
#配置數(shù)據(jù)源 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數(shù)據(jù)庫表格創(chuàng)建的方式,和控制臺sql的打印 jpa.hibernate.ddl-auto=update jpa.hibernate.show-sql=true
第三,寫實體類。
正常情況下我們在實體類上加入注解@Entity,就會讓實體類和表相關(guān)連。
如果其中某個屬性我們不需要和數(shù)據(jù)庫來關(guān)聯(lián)只是在展示的時候做計算,只需要加上@Transient屬性既可。
@Id 是標(biāo)識出主鍵
@GeneratedValue是指定主鍵的自增方式。
第四,寫查詢方法。
寫一個接口實現(xiàn)JpaRepository接口即可:
JpaRepository后面需要添加兩個參數(shù),一個是實體類,另一個是主鍵的類型。
繼承JpaRepository之后,就可以使用簡單的增刪改查功能了。
@Test public void testBaseQuery() throws Exception { Girl girl=new Girl(); userRepository.findAll(); userRepository.findOne(1); userRepository.save(girl); userRepository.delete(girl); // ... }
自定義簡單查詢
因為這只能滿足我們的基本查詢,如果不想按照他給的查詢的話我們就需要自己寫查詢語句了嗎?答案肯定是否定的了。我們還是可以按照JPA的規(guī)則生成一些查詢語句的。
自定義的簡單查詢就是根據(jù)方法名來自動生成SQL,主要的語法是findXXBy,readAXXBy,queryXXBy,countXXBy,getXXBy后面跟屬性名稱:
復(fù)雜查詢
這里就需要我們自己寫sql了,我們來看一下需要注意的地方。
在SQL的查詢方法上面使用@Query注解,如涉及到刪除和修改在需要加上@Modifying.也可以根據(jù)需要添加@Transactional 對事物的支持,查詢超時的設(shè)置等。
注意:如果在寫Query的時候,HQL語句中表名應(yīng)該是ORM映射的類名。
//傳單個值的時候 @Query("select u from User u where u.age = ?#{[0]}") ListfindUsersByAge(int age); //傳多個值的時候 @Query("select u from User u where u.firstname = :#{#customer.firstname}") List findUsersByCustomersFirstname(@Param("customer") Customer customer)
看完了這篇文章,相信你對Spring Boot中使用Spring Data JPA連接數(shù)據(jù)庫的方法有了一定的了解,想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!