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

資訊專欄INFORMATION COLUMN

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

yuxue / 3391人閱讀

摘要:以前都是用進行數據庫的開發,最近學習之后發現顯得更友好,所以我們就一起來了解一下的原理吧。簡單介紹持久性是的一個規范。它用于在對象和關系數據庫之間保存數據。充當面向對象的領域模型和關系數據庫系統之間的橋梁。是標識出主鍵是指定主鍵的自增方式。

以前都是用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里面引入相關的依賴。

    
    mysql
    mysql-connector-java
    
    
    org.springframework.boot
    spring-boot-starter-data-jpa
    

第二,需要在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 findUsersByAge(int age);
    
    //傳多個值的時候
    @Query("select u from User u where u.firstname = :#{#customer.firstname}")
    List findUsersByCustomersFirstname(@Param("customer") Customer customer);

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/71716.html

相關文章

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

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

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

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

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

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

    Dionysus_go 評論0 收藏0

發表評論

0條評論

yuxue

|高級講師

TA的文章

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