国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Spring Boot整合JPA 與 JpaRepository 基礎(chǔ)方法介紹

這篇具有很好參考價值的文章主要介紹了Spring Boot整合JPA 與 JpaRepository 基礎(chǔ)方法介紹。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1. 什么是JPA
? ?JPA(Java Persistence API, Java 持久化API)是SUN公司提出的Java持久化規(guī)范,它提供了一種對象/關(guān)系映射的管理工具來管理Java中的關(guān)系型數(shù)據(jù)庫。JPA的主要目的是簡化現(xiàn)有的持久化開發(fā)工作并且整合ORM框架,JPA本身并不是ORM框架,它是一種規(guī)范,這種規(guī)范可以私下通過注解或者XML描述“對象-關(guān)系表”之間的映射關(guān)系,并將實體對象持久化到數(shù)據(jù)庫中,從而極大地簡化現(xiàn)有的持久化開發(fā)工作。

1.1 JPA和MyBatis的關(guān)系
? ? 實現(xiàn)JPA的框架有Hibernate, TopLink, 而我們前面介紹的MyBatis不屬于實現(xiàn)JPA的框架,主要區(qū)別有:

Mybatis是對象和結(jié)果集的映射,而JPA規(guī)范強(qiáng)調(diào)的是對象和關(guān)系表之間的映射。
遵守JPA規(guī)范的框架具有良好的移植性,不用關(guān)心用什么數(shù)據(jù)庫,而Mybatis框架在更改數(shù)據(jù)庫時需要修改底層SQL。
2. Spring Data JPA
2.1 配置SpringData JPA
? ? Spring Data 是Spring 的一個子項目, 旨在統(tǒng)一和簡化對各類型持久化存儲, 而不拘泥于是關(guān)系型數(shù)據(jù)庫還是NoSQL 數(shù)據(jù)存儲。

? ?Spring Data JPA是Spring Data項目的一部分,它是在ORM框架思想、JPA規(guī)范的基礎(chǔ)上封裝的一套JPA應(yīng)用框架。使用Spring Data JPA只需要繼承和擴(kuò)展Spring Data 中統(tǒng)一的數(shù)據(jù)訪問接口Repository接口無需編寫SQL實現(xiàn)數(shù)據(jù)庫訪問。

在pom.xml文件中添加spring-boot-starter-data-jpa依賴

<dependency>
? ? <groupId>org.springframework.boot</groupId>
? ? <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
在數(shù)據(jù)庫中新建一個schema用于JPA測試

?然后在application.properties文件中進(jìn)行相關(guān)配置

spring.datasource.url=jdbc:mysql://localhost:3306/jpa_demo?useSSL=true&useUnicode=true&characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=itJMF-4RObQ2
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
?
#JPA 配置
spring.jpa.hibernate.ddl-auto=update
#spring.jpa.hibernate.ddl-auto=create
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
?這里對JPA配置進(jìn)行簡單說明

?spring.jpa.hibernate.ddl-auto

該配置比較常用,配置實體類維護(hù)數(shù)據(jù)庫表結(jié)構(gòu)的具體行為。它主要有4個選項

create: 啟動時刪數(shù)據(jù)庫中的表,然后創(chuàng)建新表,退出時不刪除數(shù)據(jù)表
create-drop: 啟動時刪數(shù)據(jù)庫中的表,然后創(chuàng)建,退出時刪除數(shù)據(jù)表 如果表不存在則報錯
update: 如果啟動時表格式不一致則更新表,原有數(shù)據(jù)保留
validate: 項目啟動表結(jié)構(gòu)進(jìn)行校驗 如果不一致則報錯”
這里我們選擇了update

spring.jpa.show-sql=true 操作時在控制臺打印真實的SQL語句,便于調(diào)試

spring.jpa.properties.hibernate.format_sql=true 以JSON格式打印輸出SQL語句方便查看

3. 驗證Spring Data JPA
首先,創(chuàng)建Scenic實體類,它是一個實體類,按照J(rèn)PA的設(shè)計思想,這個實體類也是定義數(shù)據(jù)庫中的表結(jié)構(gòu)的類,示例代碼如下

@Entity
@Table(name = "scenics")
public class Scenic {
? ? @GeneratedValue(strategy = GenerationType.IDENTITY)
? ? @Id
? ? private int scenicId;
?
? ? private int cityId;
?
? ? //@Column(name = "scenicName")
? ? @Column(length = 64)
?
? ? private String scenicName;
?
? ? private int price;
?
?
? ? public Scenic() {
?
? ? }
?
? ? public Scenic(Integer cityId, String scenicName, int price ){
? ? ? ? this.cityId = cityId;
? ? ? ? this.scenicName = scenicName;
? ? ? ? this.price = price;
? ? }
?
?
?注意這個實體類中使用了JPA相關(guān)的注解

@Entity 這個注解是使用JPA時必須的注解,代表這個類對應(yīng)了一個數(shù)據(jù)庫表

@Table 這是一個可選的注解,用于說明數(shù)據(jù)庫實體對應(yīng)的表信息,包括表的名稱、索引信息等,如果沒有則表名和實體類的名稱一致,一般情況下我們不使用該注解,這里為了演示,我們使用該注解將表名申明為Scenics

@Id 代表對應(yīng)的主鍵

@GeneratedValue 設(shè)置數(shù)據(jù)庫主鍵自動生成規(guī)則。strategy屬性提供4種選項

AUTO:主鍵由程序控制,是默認(rèn)選項。

IDENTITY:主鍵由數(shù)據(jù)庫自動生成,即采用數(shù)據(jù)庫ID自增長的方式,注意Oracle不支持這種方式。

SEQUENCE:通過數(shù)據(jù)庫的序列產(chǎn)生主鍵,通過@SequenceGenerator注解指定序列名,注意MySQL不支持這種方式。

TABLE:通過特定的數(shù)據(jù)庫表產(chǎn)生主鍵,使用該策略可以使應(yīng)用更易于數(shù)據(jù)庫移植。

@Column注解:聲明實體屬性的表字段的定義。默認(rèn)的實體每個屬性都對應(yīng)表的一個字段,字段名默認(rèn)與屬性名保持一致。字段的類型根據(jù)實體屬性類型自動對應(yīng)。這里主要聲明了字符字段的長度length,如果不聲明,則系統(tǒng)會采用255作為該字段的長度。

這里需要注意JPA自動建表的字段命名規(guī)則采用的是下劃線,如屬性scenicName會將生成數(shù)據(jù)庫字段scenic_name,如果需要生成非下劃線字段,可以采用@Column(name = "ScenicName")

運(yùn)行測試

運(yùn)行Spring boot應(yīng)用,控制臺輸出

? 查看數(shù)據(jù)庫,可以看到已經(jīng)自動創(chuàng)建了scenics數(shù)據(jù)庫表

? ?

?4. JpaRepository類定義
? 接下來學(xué)習(xí)如何通過類來操作數(shù)據(jù)庫,在Spring Data JPA中使用JpaRepository接口類完成對數(shù)據(jù)庫的操作。JpaRepository是Spring Data JPA中最重要的類之一。

?這是JpaRepository接口的定義

@NoRepositoryBean
public interface JpaRepository<T, ID> extends PagingAndSortingRepository<T, ID>, QueryByExampleExecutor<T>
?可以看出JpaRepository繼承了接口PagingAndSortingRepository和QueryByExampleExecutor。而PagingAndSortingRepository又繼承CrudRepository。

@NoRepositoryBean
public interface PagingAndSortingRepository<T, ID> extends CrudRepository<T, ID> {
?所以JpaRepository接口同時擁有了基本CRUD功能以及分頁功能。

?JpaRepository提供了30多個默認(rèn)方法,基本能滿足項目中的數(shù)據(jù)庫操作功能。當(dāng)我們需要定義自己的Repository接口的時候,我們可以直接繼承JpaRepository,從而獲得SpringBoot Data JPA為我們內(nèi)置的多種基本數(shù)據(jù)操作方法。

5. JpaRepository基礎(chǔ)方法
下面對主要的方法進(jìn)行測試

在項目目錄下新建repository包,添加接口文件ScenicRepository

?代碼如下?

@Repository
public interface ScenicRepository extends JpaRepository<Scenic, Integer> {
}
?
?在測試用例類Chapter9ApplicationTests中添加測試方法進(jìn)行測試


————————————————

原文鏈接:https://blog.csdn.net/qwdzq/article/details/126809651

輕松搞定SpringBoot JPA使用配置過程詳解_java_腳本之家文章來源地址http://www.zghlxwxcb.cn/news/detail-493401.html

到了這里,關(guān)于Spring Boot整合JPA 與 JpaRepository 基礎(chǔ)方法介紹的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Spring Boot整合JPA和人大金倉(Kingbase8)數(shù)據(jù)庫

    在開發(fā)Java應(yīng)用程序時,使用JPA(Java Persistence API)可以方便地進(jìn)行數(shù)據(jù)庫操作。而人大金倉(Kingbase8)是一款基于國產(chǎn)化研發(fā)的關(guān)系型數(shù)據(jù)庫。本文將介紹如何在Spring Boot項目中整合JPA和人大金倉數(shù)據(jù)庫,并提供相關(guān)實例來演示使用方式。 在開始之前,請確保已經(jīng)滿足以下條

    2024年02月12日
    瀏覽(51)
  • 使用Spring Boot和JPA實現(xiàn)多數(shù)據(jù)源的方法

    使用Spring Boot和JPA實現(xiàn)多數(shù)據(jù)源的方法: 添加相關(guān)依賴:在pom.xml文件中添加Spring Boot和JPA的依賴項,例如Spring Boot Starter Data JPA和相應(yīng)的數(shù)據(jù)庫驅(qū)動。 配置數(shù)據(jù)源:在application.properties(或application.yml)文件中,配置多個數(shù)據(jù)源的連接信息,如數(shù)據(jù)庫URL、用戶名和密碼。 創(chuàng)建數(shù)

    2024年01月21日
    瀏覽(70)
  • Spring Boot是什么-特點介紹

    Spring Boot是什么-特點介紹

    ????????Spring Boot是由Pivotal團(tuán)隊提供的全新框架,其中“Boot”的意思就是“引導(dǎo)”,Spring Boot 并 不是對 Spring 功能上的增強(qiáng) ,而是提供了一種快速開發(fā) Spring應(yīng)用的方式。 嵌入的 Tomcat,無需部署 WAR 文件 ????????Spring Boot 使用嵌入式的 Servlet 容器(例如 Tomcat、Jetty 或

    2024年01月19日
    瀏覽(32)
  • 在Spring Boot項目中使用JPA

    Spring Boot提供了啟動器spring-boot-starter-data-jpa,只需要添加啟動器(Starters)就能實現(xiàn)在項目中使用JPA。下面一步一步演示集成Spring Data JPA所需的配置。 步驟01 添加JPA依賴。 首先創(chuàng)建新的Spring Boot項目,在項目的pom.xml中增加JPA相關(guān)依賴,具體代碼如下:

    2024年02月09日
    瀏覽(22)
  • Spring Boot 61:JPA 中的級聯(lián)類型

    Spring Boot 61:JPA 中的級聯(lián)類型

    圖源:簡書 (jianshu.com) 關(guān)系型數(shù)據(jù)庫的增刪改查操作會因為有關(guān)聯(lián)關(guān)系而存在“級聯(lián)操作”的需要,體現(xiàn)在 JPA 中,就是實體中會定義的級聯(lián)類型(Cascade Type)。 JPA 中的級聯(lián)類型由枚舉 jakarta.persistence.CascadeType 表示,包括: ALL PERSIST MERGE REMOVE REFRESH DETACH 這些級聯(lián)類型對應(yīng)實

    2024年02月12日
    瀏覽(23)
  • 【Spring Boot 3】【JPA】枚舉類型持久化

    軟件開發(fā)是一門實踐性科學(xué),對大多數(shù)人來說,學(xué)習(xí)一種新技術(shù)不是一開始就去深究其原理,而是先從做出一個可工作的DEMO入手。但在我個人學(xué)習(xí)和工作經(jīng)歷中,每次學(xué)習(xí)新技術(shù)總是要花費(fèi)或多或少的時間、檢索不止一篇資料才能得出一個可工作的DEMO,這占用了我大量的時

    2024年01月24日
    瀏覽(25)
  • Spring Boot框架基礎(chǔ)介紹

    Spring Boot框架基礎(chǔ)介紹

    Spring Boot 是一款基于 Spring 框架的開源應(yīng)用程序開發(fā)工具,它旨在簡化 Spring 應(yīng)用程序的配置和開發(fā)過程。Spring Boot 提供了一種簡單的方式來創(chuàng)建可獨(dú)立運(yùn)行的、生產(chǎn)級別的應(yīng)用程序,并在需要時進(jìn)行部署。Spring Boot 在微服務(wù)架構(gòu)和云計算環(huán)境下得到了廣泛應(yīng)用,本文將介紹

    2024年02月08日
    瀏覽(18)
  • Springboot --- 整合spring-data-jpa和spring-data-elasticsearch

    Springboot --- 整合spring-data-jpa和spring-data-elasticsearch

    SpringBoot: 整合Ldap. SpringBoot: 整合Spring Data JPA. SpringBoot: 整合Elasticsearch. SpringBoot: 整合spring-data-jpa和spring-data-elasticsearch. SpringBoot: 整合thymeleaf. SpringBoot: 注入第三方j(luò)ar包. SpringBoot: 整合Redis. SpringBoot: 整合slf4j打印日志. SpringBoot: 整合定時任務(wù),自動執(zhí)行方法. SpringBoot: 配置多數(shù)據(jù)源

    2023年04月25日
    瀏覽(29)
  • Spring Boot 篇四: Spring Data JPA使用SQL Server

    Spring Boot 篇四: Spring Data JPA使用SQL Server

    本篇介紹篇一至篇三中用到的JPA鏈接SQL Server的具體情況以及實戰(zhàn)過程中可能遇到的問題。 具體的下載和安裝教程,請參閱微軟SQL Server官網(wǎng); SQL Server Express 是免費(fèi)的,并且配套的SQL Server Management Studio也是可以用的。 呃,當(dāng)然,使用Docker來運(yùn)行SQL Server是另外一條路徑。具體

    2024年02月05日
    瀏覽(17)
  • Spring Boot集成JPA和ClickHouse數(shù)據(jù)庫

    Spring Boot是一個用于創(chuàng)建獨(dú)立的、基于Spring的應(yīng)用程序的框架。它具有快速開發(fā)特性,可以大大減少開發(fā)人員的工作量。JPA(Java Persistence API)是Java中處理關(guān)系型數(shù)據(jù)庫持久化的標(biāo)準(zhǔn)規(guī)范,而ClickHouse是一個高性能、分布式的列式數(shù)據(jù)庫。 本文將介紹如何在Spring Boot項目中集成

    2024年02月09日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包