1. 程式人生 > >使用hibernate代替mysql中limit進行分頁

使用hibernate代替mysql中limit進行分頁

mysql分頁語句很簡單:
 select * from table  limit 開始索引,查尋數量;
 
當用hibernate時:
 
Query query = session.createQuery(“from table limit 10,20″);

 這樣有錯,hibernate不能直接在hql裡寫limit,hibernate不識別limit,
 解決如下:
 
public List<User> getUserById(final int userId,final int maxCount,final int firstResult) throws Exception {
 final String hql = “from User where userId=? “;
 return this.getHibernateTemplate().executeFind(new HibernateCallback() {
 public Object doInHibernate(final Session session) throws HibernateException, SQLException {
 final Query query = session.createQuery(hql);
 query.setParameter(0, userId);
 query.setMaxResults(maxCount);
 query.setFirstResult(firstResult);
 return query.list();
 }
 });
 }
 

相關推薦

使用hibernate代替mysqllimit進行

mysql分頁語句很簡單:  select * from table  limit 開始索引,查尋數量;   當用hibernate時:  Query query = session.createQuery(“from table limit 10,20″);  這樣有錯

使用mysqllimit進行時出現重複問題

使用MySQL的limit進行分頁時,例如 select  * from table_1 where 1=1 limit m,n 這樣後面的頁可能會出現重複資料,這時可以通過加入order by 子句來解決這種情況, select * from table_1  w

MySQL - 當LIMIT 進行時,為什麼出現了重複資料

哦,這時寫的一個破SQL,遺留了個問題,沒有去注意,所以造成了,有重複資料。因為引用了 PageHelper 外掛,期初還以為是 外掛有問題。後來想想,畢竟整個框架都是用的這個外掛,就算有問題早應該會出現了。所以,第一時間想到了SQL,的確,去了排序就沒有問題。 說在前面

MySQL使用LIMIT進行的方法

一:分頁需求: 客戶端通過傳遞start(頁碼),pageSize(每頁顯示的條數)兩個引數去分頁查詢資料庫表中的資料,那我們知道MySql資料庫提供了分頁的函式limit m,n,但是該函式的用法和我們的需求不一樣,所以就需要我們根據實際情況去改寫適合我們自己的分頁語句,具體的分析如下:

mysql 使用索引進行優化

MySQL大資料量分頁查詢方法及其優化 ---方法1: 直接使用資料庫提供的SQL語句 ---語句樣式: MySQL中,可用如下方法: SELECT * FROM 表名稱 LIMIT M,N ---適應場景: 適用於資料量較少的情況(元組百/千級) ---原因/缺點: 全表掃描,速度會很慢 且

mysql排序再遇到的重複資料

  用一個簡單例項,對遇到的問題覆盤一下。   1.新建測試表 test_ordercreate table test_order( id int(11) not null auto_incre

淺析Oracle(rownum)和Mysqllimit的區別

一、Mysql使用limit分頁select * from stu limit m, n; //m = (startPage-1)*pageSize,n = pageSizePS:(1)第一個引數值m表示起始行,第二個引數表示取多少行(頁面大小)(2)m= (2-1)*10+1,n=10 ,表示 limit

使用hibernate實現mysqllimit的查詢

 給大家分享個知識點,hibernate 的hql不支援limit的使用。以後大家如果有限制查詢從第幾條至第幾條時。就用          List<SiteInvestment> investments = new ArrayList<SiteIn

mysqlmysql利用編號id和每條數來進行

1.mysql分頁 【語句順序】        select 選擇的列        from 表  

MySQL大資料量查詢方法及其優化 ---方法1: 直接使用資料庫提供的SQL語句 ---語句樣式: MySQL,可用如下方法: SELECT * FROM 表名稱 LIMIT M,N ---適

測試實驗 1.   直接用limit start, count分頁語句, 也是我程式中用的方法: select * from product limit start, count 當起始頁較小時,查詢沒有效能問題,我們分別看下從10, 100, 1000, 10000開始分頁的執行時間(每頁取20條), 如

Hibernate使用HQL進行查詢

第一步 建立query物件 Query query = session.createQuery("xxxxxx”); 第二步 設定開始位置和每頁顯示記錄數 設定開始位置,firstResult 的內

大三筆記(ssm專案使用layui進行

  本篇文章較為簡單,實現的功能是分頁。下面貼程式碼。 <script src="layui.js" charset="utf-8"></script> <!-- 注意:如果你直接複製所有程式碼到本地,上述js路徑需要改成你本地的 -->

從redis取值 然後通過list進行查詢

1.首先是往redis中存入資料:                                     tota

hibernate的通用basedao

hibernate原生態分頁寫法 public List<Book> list1(Book book,PageBean pageBean) { Session session = SessionFactoryUtil.getSession();

daoImpl裡呼叫getSession(),hibernate DetachedCriteria Criteria進行查詢

DaoImpl裡呼叫getSession() public class SocialInfoDaoImpl extends BaseDaoImpl<SocialInfo,Integer> implements ISocialInfoDao { pub

layui進行處理,後端返回資料沒有count欄位,需要單獨獲取再新增到資料,再進行項渲染,另有layui表格資料增刪改查前後端互動

整體效果圖如下: (1)分頁前端介面處理 (2)分頁後端的資料處理 具體程式碼如下: 前端介面程式碼:包括分頁,增刪改查,重新整理(搜尋功能還沒做,後端是java程式碼) <!DOCTYPE html> <html> <hea

sqlserver使用row_number進行,效率很高!速度很快!

                  最近,童鞋要做一個分頁,資料量很大,幾十萬條資料,更坑爹的是,還是要經過表連線進行查詢,速度慢得像烏龜!!                  怎麼進行優化,可以讓

Spring Boot利用遞迴演算法查詢到所有下級使用者,並手動進行

Spring Boot中利用遞迴演算法查詢到所有下級使用者,並手動進行分頁 前提:語言用的是kotlin(和Java一樣,但更簡潔),寫下這篇文章用來記錄程式設計過程中遇到的一些難點 1、功能需求 前端使用者A點選“我的推薦”後,呼叫後臺的介面,查詢到所有的下家(不僅包括直接下家) 如圖所示,當前使

mybatis對mysql進行

Mybatis對mysql資料庫分頁 <plugintype="org.mybatis.generator.plugins.EqualsHashCodePlugin" /> <plugintype="org.duoku.groom.mybatis.pl

mysql limit查詢的優化(大資料量)

mysql limit查詢優化,由於limit經常用到,卻沒有注意,因為平時做的專案都比較小,所以也沒有考慮去怎麼優化,MYSQL的優化是非常重要的。其他最常用也最需要優化的就是limit。mysql的limit給分頁帶來了極大的方便,但資料量一大的時候,limit的效能就急