持久層框架

2021-10-03 10:24:33 字數 2360 閱讀 3884

**1.spring data jpa實現動態查詢的兩種方法**

criteria api:可移植。api並不依賴具體的資料庫,可以根據資料庫型別的不同生成對應資料庫型別的sql,所以其為可移植的。

物件導向。criteria api是使用的是各種類和物件如criteriaquery、predicate等構建查詢,是物件導向的。

第一種:通過jpa的criteria api實現

entitymanager獲取criteriabuilder

criteriabuilder建立criteriaquery

criteriaquery指定要查詢的表,得到root,root代表要查詢的表

criteriabuilder建立條件predicate,predicate相對於sql的where條件,多個predicate可以進行與、或操作。

通過entitymanager建立typedquery

typedquery執行查詢,返回結果

第二種:dao層介面實現jpaspecificationexecutor介面

2.spring data jpa實現分頁pageable的例項**

/**

* 乙個引數,匹配兩個字段

* @param name2

* @param pageable 分頁引數

* @return

* 這裡param的值和=:後面的引數匹配,但不需要和方法名對應的引數值對應

* 這裡增加了@queryhints註解,是給查詢新增一些額外的提示

* 比如當前的name值為hint_comment是在查詢的時候帶上一些備註資訊

*/@queryhints

(value =

)@query

("select c from customer c where c.firstname=:name or c.lastname=:name"

)pagefindbyname

(@param

("name"

) string name2,pageable pageable)

;

//pageable是介面,pagerequest是介面實現

//pagerequest的物件建構函式有多個,page是頁數,初始值是0,size是查詢結果的條數,後兩個引數參考sort物件的構造方法

pageable pageable = new pagerequest

(0,3, sort.direction.desc,"id");

pagepage = repository.findbyname

("bauer",pageable)

;

*spring data jpa使用sort進行排序(using sort)

*

/**

* 乙個引數,匹配兩個字段

* @param name2

* @param sort 指定排序的引數,可以根據需要進行調整

* @return

* 這裡param的值和=:後面的引數匹配,但不需要和方法名對應的引數值對應

* */

@query

("select c from customer c where c.firstname=:name or c.lastname=:name"

)listfindbyname4

(@param

("name"

) string name2,sort sort)

;

sort sort = new sort

(sort.direction.desc,"id");

listresult = repository.findbyname4

("bauer",sort)

;

listsortproperties = new arraylist<>();

sortproperties.add

("id");

sortproperties.add

("firstname");

sort sort2 = new sort

(sort.direction.desc,sortproperties)

;

spring data jpa 複雜/多條件組合分頁查詢

spring data jpa實現動態條件與範圍查詢例項**

spring data jpa 的簡單使用

mybatis

Room SQLite持久層框架

android中提供了sqlite資料庫進行資料的持久化 並提供了對應api訪問資料庫,而room框架提供了sqlite資料訪問抽象層,為高效的資料庫訪問層帶來便捷 谷歌官方強烈推薦使用room框架操作sqlite資料庫 首先在build.gradle中新增必要依賴 dependencies建立實體...

持久層框架mybatis

本篇的中心內容,解決以下問題。持久層框架mybatis篇與mybatis plus使用 mybatis 是支援定製化 sql 儲存過程以及高階對映的優秀的持久層框架,其主要就完成 構建sqlsessionfactory過程 對映器的動態 sqlsession的4大物件 sql執行的過程 mybati...

python持久層框架 SQLAlchemy

軟體簡介 sqlalchemy 是乙個python 的sql 工具包以及資料庫物件對映框架。它包含整套企業級持久化模式,專門為高效和高效能的資料庫訪問。示例 from sqlalchemy import column,datetime,string,integer,foreignkey,func f...