hibernate的分頁模糊查詢功能
在web項目中,顯示數(shù)據(jù)一般采用分頁顯示的,在分頁的同時,用戶可能還有搜索的需求,也就是模糊查詢,所以,我們要在dao寫一個可以分頁并且可以動態(tài)加條件查詢的方法。分頁比較簡單,采用hibernate提供的分頁,動態(tài)條件采用map(“字段”,模糊值)封裝查詢條件,map可以添加多個查詢條件,是個不錯的選擇,從而達到實現(xiàn)分頁并模糊查詢。
@Override
public List<T> findPage(int page, int length, Map<String, Object> pram) {
List<T> result = null;
try
{
//初始化hql,this.entityClazz.getSimpleName()是泛型的真實類名,在構造函數(shù)中獲取
String hql = "from " + this.entityClazz.getSimpleName() + " where 1=1 and "; //注意空格
Session session = this.sesionFactory.openSession(); //獲取連接
if(!pram.isEmpty()) //判斷有無條件
{
Iterator<String> it = pram.keySet().iterator(); //迭代map
while(it.hasNext())
{
String key = it.next(); //獲取條件map中的key,即條件字段
hql = hql + key + " like " + "'%" + pram.get(key) + "%'" + " and "; //將字段和模糊值拼接成hql
}
}
hql += " 2=2"; //在hql末尾加上 2=2,方便hql再次拼接
System.out.println(hql);
Query query = session.createQuery(hql);
query.setFirstResult((page - 1) * length); //設置分頁頁碼
query.setMaxResults(length); //設置每頁數(shù)據(jù)長度
result = query.list(); //返回結果集
} catch (RuntimeException re)
{
throw re;
}
return result;
}
以上所述是小編給大家介紹的hibernate的分頁模糊查詢功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關文章
Java使用modbus-master-tcp實現(xiàn)modbus tcp通訊
這篇文章主要為大家詳細介紹了另外一種Java語言的modbux tcp通訊方案,那就是modbus-master-tcp,文中的示例代碼講解詳細,需要的可以了解下2023-12-12
SpringBoot+Vue項目部署實現(xiàn)傳統(tǒng)方式
我們在進行前后端分離開發(fā)的時候,一般是將前端項目部署到nginx服務器上,與后端項目分開部署,這篇文章主要給大家介紹了關于SpringBoot+Vue項目部署實現(xiàn)傳統(tǒng)方式的相關資料,需要的朋友可以參考下2024-01-01
Java使用modbus4j實現(xiàn)modbus?tcp通訊
Modbus是由Modicon(現(xiàn)為施耐德電氣公司的一個品牌)在1979年發(fā)明的,是全球第一個真正用于工業(yè)現(xiàn)場的總線協(xié)議,本文主要介紹了java如何使用modbus4j實現(xiàn)modbus?tcp通訊,感興趣的可以了解下2023-12-12
Java多線程生產(chǎn)者消費者模式實現(xiàn)過程解析
這篇文章主要介紹了Java多線程生產(chǎn)者消費者模式實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-03-03

