首頁 Java java教程 Spring Boot中使用Spring Data JPA連接資料庫

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

Oct 17, 2018 pm 04:16 PM
java mysql spring windows

這篇文章帶給大家的內容是關於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中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1677
14
CakePHP 教程
1431
52
Laravel 教程
1333
25
PHP教程
1278
29
C# 教程
1257
24
MySQL與PhpMyAdmin:了解關鍵差異 MySQL與PhpMyAdmin:了解關鍵差異 May 06, 2025 am 12:17 AM

MySQL是數據庫管理系統,phpMyAdmin是管理MySQL的Web工具。 1.MySQL用於存儲和管理數據,支持SQL操作。 2.phpMyAdmin提供圖形界面,簡化數據庫管理。

Python開發_python的安裝 Python開發_python的安裝 May 07, 2025 pm 04:33 PM

Python可以在多種平台上運行,包括我們常見的:Windows、Unix、Linux和Macintosh。本文將詳細介紹在Windows操作系統中安裝Python的過程。我的操作系統是Windows7,32位版本。在安裝Python時,我們可以選擇從源碼安裝,也可以選擇已經編譯好的二進製版本進行安裝。我這裡選擇的是後者。步驟一下載安裝包我們從Python的官方網站:http://www.python.org下載Python的安裝包。我選擇的版本是:python-3.3.2.msi點擊下載後,我

MySQL:SQL的實際應用 MySQL:SQL的實際應用 May 08, 2025 am 12:12 AM

MySQL受歡迎的原因是其性能卓越且易於使用和維護。 1.創建數據庫和表:使用CREATEDATABASE和CREATETABLE命令。 2.插入和查詢數據:通過INSERTINTO和SELECT語句操作數據。 3.優化查詢:使用索引和EXPLAIN語句提升性能。

為Web開發者準備的10個最新工具 為Web開發者準備的10個最新工具 May 07, 2025 pm 04:48 PM

Web開發設計是一個充滿潛力的職業領域。然而,這個行業也面臨著諸多挑戰。隨著越來越多的企業和品牌轉向網絡市場,Web開發者有機會展示他們的技能並在職業生涯中取得成功。然而,隨著對Web開發需求的持續增長,開發人員的數量也在增加,導致競爭日益激烈。但令人振奮的是,如果你具備天賦和意願,你總能找到新方法來創造獨特的設計和創意。作為一名Web開發人員,你可能需要不斷尋找新的工具和資源。這些新工具和資源不僅能讓你的工作更加便捷,還能提升工作質量,從而幫助你贏得更多的業務和客戶。 Web開發的趨勢不斷變化,

MySQL與Oracle:許可,功能和福利 MySQL與Oracle:許可,功能和福利 May 08, 2025 am 12:05 AM

MySQL和Oracle的主要區別在於許可證、功能和優勢。 1.許可證:MySQL提供GPL許可證,免費使用,Oracle採用專有許可證,價格昂貴。 2.功能:MySQL功能簡單,適合Web應用和中小型企業,Oracle功能強大,適合大規模數據和復雜業務。 3.優勢:MySQL開源免費,適合初創公司,Oracle性能可靠,適合大型企業。

phpmyadmin的功能:與MySQL(SQL)互動 phpmyadmin的功能:與MySQL(SQL)互動 May 07, 2025 am 12:16 AM

phpMyAdmin通過Web界面簡化MySQL數據庫管理。 1)創建數據庫和表:使用圖形界面輕鬆操作。 2)執行複雜查詢:如JOIN查詢,通過SQL編輯器實現。 3)優化和最佳實踐:包括SQL查詢優化、索引管理和數據備份。

.NET Core快速入門教程 1、開篇:說說.NET Core的那些事兒 .NET Core快速入門教程 1、開篇:說說.NET Core的那些事兒 May 07, 2025 pm 04:54 PM

一、.NETCore的起源談到.NETCore,就不能不提它的前身.NET。當年Java風頭正盛,微軟也對Java青睞有加,Windows平台上的Java虛擬機就是微軟依據JVM標准開發的,據稱是當時性能最佳的Java虛擬機。然而,微軟有自己的小算盤,試圖將Java與Windows平台捆綁,增加一些Windows特有的功能。 Sun公司對此不滿,導致雙方關係破裂,微軟隨後推出了.NET。 .NET從誕生之初就借鑒了Java的許多特性,並在語言特性和窗體開發等方面逐漸超越了Java。 Java在1.6版

win11怎麼退回之前的版本 win11系統回滾操作指南 win11怎麼退回之前的版本 win11系統回滾操作指南 May 07, 2025 pm 04:21 PM

在Windows11上啟動回滾功能需在升級後的10天內進行。步驟如下:1.打開“設置”,2.進入“系統”,3.找到“恢復”選項,4.啟動回滾,5.確認回滾。回滾後需注意數據備份、軟件兼容性和驅動程序更新。

See all articles