国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Spring Boot 的簡單教程(四)數(shù)據(jù)庫連接之Spring Data JPA的使用

yuxue / 3386人閱讀

摘要:以前都是用進(jìn)行數(shù)據(jù)庫的開發(fā),最近學(xué)習(xí)之后發(fā)現(xiàn)顯得更友好,所以我們就一起來了解一下的原理吧。簡單介紹持久性是的一個規(guī)范。它用于在對象和關(guān)系數(shù)據(jù)庫之間保存數(shù)據(jù)。充當(dāng)面向?qū)ο蟮念I(lǐng)域模型和關(guān)系數(shù)據(jù)庫系統(tǒng)之間的橋梁。是標(biāo)識出主鍵是指定主鍵的自增方式。

以前都是用Mybatis進(jìn)行數(shù)據(jù)庫的開發(fā),最近學(xué)習(xí)Spring Boot之后發(fā)現(xiàn)JPA顯得更友好,所以我們就一起來了解一下JPA的原理吧。

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)的常用功能,且易于擴(kuò)展!學(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);
    // ...
}
自定義簡單查詢

因為這只能滿足我們的基本查詢,如果不想按照他給的查詢的話我們就需要自己寫查詢語句了嗎?答案肯定是否定的了。我們還是可以按照J(rèn)PA的規(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]}")
    List findUsersByAge(int age);
    
    //傳多個值的時候
    @Query("select u from User u where u.firstname = :#{#customer.firstname}")
    List findUsersByCustomersFirstname(@Param("customer") Customer customer);

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/71716.html

相關(guān)文章

  • Spring Boot 教程(二):使用Spring Boot JPA完成數(shù)據(jù)層訪問

    摘要:教程簡介本項目內(nèi)容為教程樣例。目的是通過學(xué)習(xí)本系列教程,讀者可以從到掌握的知識,并且可以運(yùn)用到項目中。本章將進(jìn)一步講解,結(jié)合完成數(shù)據(jù)層訪問。創(chuàng)建控制器在下面創(chuàng)建控制器用于測試訪問程序運(yùn)行和調(diào)試在類中,啟動程序。 教程簡介 本項目內(nèi)容為Spring Boot教程樣例。目的是通過學(xué)習(xí)本系列教程,讀者可以從0到1掌握spring boot的知識,并且可以運(yùn)用到項目中。如您覺得該項目對您有用,...

    DevWiki 評論0 收藏0
  • 寫這么多系列博客,怪不得找不到女朋友

    摘要:前提好幾周沒更新博客了,對不斷支持我博客的童鞋們說聲抱歉了。熟悉我的人都知道我寫博客的時間比較早,而且堅持的時間也比較久,一直到現(xiàn)在也是一直保持著更新狀態(tài)。 showImg(https://segmentfault.com/img/remote/1460000014076586?w=1920&h=1080); 前提 好幾周沒更新博客了,對不斷支持我博客的童鞋們說聲:抱歉了!。自己這段時...

    JerryWangSAP 評論0 收藏0
  • 一起來學(xué)SpringBoot | 第六篇:整合SpringDataJpa

    摘要:忽略該字段的映射省略創(chuàng)建數(shù)據(jù)訪問層接口,需要繼承,第一個泛型參數(shù)是實體對象的名稱,第二個是主鍵類型。 SpringBoot 是為了簡化 Spring 應(yīng)用的創(chuàng)建、運(yùn)行、調(diào)試、部署等一系列問題而誕生的產(chǎn)物,自動裝配的特性讓我們可以更好的關(guān)注業(yè)務(wù)本身而不是外部的XML配置,我們只需遵循規(guī)范,引入相關(guān)的依賴就可以輕易的搭建出一個 WEB 工程 上一篇介紹了Spring JdbcTempl...

    Dionysus_go 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<