**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...