日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

使用Spring-data-jpa(1)(三十)

發布時間:2025/7/25 javascript 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用Spring-data-jpa(1)(三十) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在實際開發過程中,對數據庫的操作無非就“增刪改查”。就最為普遍的單表操作而言,除了表和字段不同外,語句都是類似的,開發人員需要寫大量類似而枯燥的語句來完成業務邏輯。

為了解決這些大量枯燥的數據操作語句,我們第一個想到的是使用ORM框架,比如:Hibernate。通過整合Hibernate之后,我們以操作Java實體的方式最終將數據改變映射到數據庫表中。

為了解決抽象各個Java實體基本的“增刪改查”操作,我們通常會以泛型的方式封裝一個模板Dao來進行抽象簡化,但是這樣依然不是很方便,我們需要針對每個實體編寫一個繼承自泛型模板Dao的接口,再編寫該接口的實現。雖然一些基礎的數據訪問已經可以得到很好的復用,但是在代碼結構上針對每個實體都會有一堆Dao的接口和實現。

由于模板Dao的實現,使得這些具體實體的Dao層已經變的非常“薄”,有一些具體實體的Dao實現可能完全就是對模板Dao的簡單代理,并且往往這樣的實現類可能會出現在很多實體上。Spring-data-jpa的出現正可以讓這樣一個已經很“薄”的數據訪問層變成只是一層接口的編寫方式。比如,下面的例子:

1 2 3 4 5 6 7 8 public?interface?UserRepository?extends?JpaRepository<User, Long> { ????User findByName(String name); ????@Query("from User u where u.name=:name") ????User findUser(@Param("name") String name); }

我們只需要通過編寫一個繼承自JpaRepository的接口就能完成數據訪問,下面以一個具體實例來體驗Spring-data-jpa給我們帶來的強大功能。

使用示例

由于Spring-data-jpa依賴于Hibernate。如果您對Hibernate有一定了解,下面內容可以毫不費力的看懂并上手使用Spring-data-jpa。如果您還是Hibernate新手,您可以先按如下方式入門,再建議回頭學習一下Hibernate以幫助這部分的理解和進一步使用。

工程配置

在pom.xml中添加相關依賴,加入以下內容:

1 2 3 4 <dependency ????<groupId>org.springframework.boot</groupId> ????<artifactId>spring-boot-starter-data-jpa</artifactId> </dependency>

在application.xml中配置:數據庫連接信息(如使用嵌入式數據庫則不需要)、自動創建表結構的設置,例如使用mysql的情況如下:

1 2 3 4 5 6 spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.jpa.properties.hibernate.hbm2ddl.auto=create-drop

spring.jpa.properties.hibernate.hbm2ddl.auto是hibernate的配置屬性,其主要作用是:自動創建、更新、驗證數據庫表結構。該參數的幾種配置如下:

  • create:每次加載hibernate時都會刪除上一次的生成的表,然后根據你的model類再重新來生成新表,哪怕兩次沒有任何改變也要這樣執行,這就是導致數據庫表數據丟失的一個重要原因。
  • create-drop:每次加載hibernate時根據model類生成表,但是sessionFactory一關閉,表就自動刪除。
  • update:最常用的屬性,第一次加載hibernate時根據model類會自動建立起表的結構(前提是先建立好數據庫),以后加載hibernate時根據model類自動更新表結構,即使表結構改變了但表中的行仍然存在不會刪除以前的行。要注意的是當部署到服務器后,表結構是不會被馬上建立起來的,是要等應用第一次運行起來后才會。
  • validate:每次加載hibernate時,驗證創建數據庫表結構,只會和數據庫中的表進行比較,不會創建新表,但是會插入新值。

至此已經完成基礎配置,如果您有在Spring下整合使用過它的話,相信你已經感受到Spring Boot的便利之處:JPA的傳統配置在persistence.xml文件中,但是這里我們不需要。當然,最好在構建項目時候按照之前提過的最佳實踐的工程結構來組織,這樣以確保各種配置都能被框架掃描到。

轉載于:https://www.cnblogs.com/MaxElephant/p/10232324.html

總結

以上是生活随笔為你收集整理的使用Spring-data-jpa(1)(三十)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: brazzers精品成人一区 | 九九热在线视频观看 | 中文在线免费 | 欧美视频四区 | 91视频导航 | 亚洲高清毛片一区二区 | 91成人一区二区三区 | 特级毛片www| 黄色网址你懂得 | 操她视频在线观看 | 女~淫辱の触手3d动漫 | 女人扒开屁股让男人桶 | 米奇狠狠干 | 免费观看黄色小视频 | 国产91精品一区二区绿帽 | 老司机午夜视频 | 国内久久精品 | 日本123区 | 美女一区| 欧美高清在线视频 | 欧美午夜一区二区三区 | www.久色 | 国产精品久久久久久亚洲调教 | 日本免费黄网站 | 精品乱子伦一区二区三区 | 欧美肥老妇视频九色 | 久久无码性爱视频 | 不卡日本 | 国产学生美女无遮拦高潮视频 | 亚洲v在线观看 | 欧美亚洲二区 | 国产粉嫩av| 日本人妻不卡一区二区三区中文字幕 | 国产稀缺真实呦乱在线 | 69影院少妇在线观看 | 欧美激情videos | 91官网入口| 亚洲中文一区二区 | 国产丝袜第一页 | 天天夜夜骑 | 欧洲美女毛片 | 国产wwwxxx| 国模精品视频一区二区 | 性欧美4khd高清极品 | 国产色爱| 久久久久久久久久免费 | 少妇15p| 蜜桃av一区二区 | 亚洲视频在线观看免费 | 欧美成人精品激情在线视频 | 国产精品探花一区二区三区 | a网站在线 | 中文字幕精品一区二区精 | 91丨porny在线| 久久一区视频 | 国产精品羞羞答答 | 超碰997| 打屁股外国网站 | 美女一级视频 | 疯狂揉花蒂控制高潮h | 伊人av一区 | www在线视频 | av综合导航| 97超碰碰碰 | 国产一级av毛片 | 伊人色网站 | 国产又黄又粗 | 少妇饥渴难耐 | 国产欧美日韩亚洲 | 精品1卡二卡三卡四卡老狼 日韩三级网 | 在线观看你懂的网址 | 日韩一级影视 | 中文字幕乱码一区二区三区 | 97精品国产97久久久久久免费 | 中文字幕一区二区三区乱码在线 | 国产午夜福利一区二区 | 非洲黑人毛片 | 亚洲AV成人无码电影在线观看 | ww久久| 韩国三色电费2024免费吗怎么看 | 狠狠操2019 | 国产精品日韩欧美一区二区三区 | 国产又粗又猛 | 久久久久久a | 少妇在线观看 | 成人免费毛片糖心 | 亚洲欧美国产一区二区三区 | 乌克兰性极品xxxhd | 97人人模人人爽人人少妇 | 久久久国产精华液 | 久久丫丫 | 色天天| 久久色在线视频 | 一级视频片 | 日韩视频a| 国产亚洲一区二区三区不卡 | 蜜桃视频在线观看一区二区 | 奇米99 | 亚洲天堂2024 |