hibernatesql分頁
1. hibernate的sqlquery分頁,尾頁會出現上一頁的數據
您好
估計是你的起始頁沒有控制住,showPage這個值應該沒有變化或影響的。
debug一下,看看翻頁的時候的時候,showPage這個值有沒有變化。
希望對你有幫助。
2. hibernate 資料庫分頁
看錯誤:Every derived table must have its own alias 。你換了資料庫,但是資料庫的配置有些地方你沒改,資料庫方言要相應換成MYSQL的資料庫方言。
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" lazy-init="true" >
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.Oracle9Dialect
</prop>(這個地方就是hibernate的資料庫方言)
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<property name="mappingDirectoryLocations">
<list>
<value>classpath*:/db/orm/</value>
</list>
</property>
</bean>
你把方言換成org.hibernate.dialect包下的org.hibernate.dialect.MySQLDialect或者org.hibernate.dialect.MySQL5Dialect試試,有問題再說。
3. hibernate執行sql 分頁
session.createSQLQuery("").addEntity(Entity.class);
entity就是你要取的對象。然後list用泛型取出來就好了,這個最基本的
4. hibernate實現分頁的幾種方式
分頁是前台樣式,數據取某一段,用query或者世界limit
5. hibernate分頁
的是
a,將查詢的條件保存到session中,或用其它方式,只要能保證翻頁時能再取出就可以了
b,資料庫需要count一次總記錄數,並取出結果集
c,自己寫個PageUtil類,目的是根據總記錄數能算出有多少頁、上一頁下一頁都是什麼,就夠了,jsp頁面根據這個pageutil類的信息來寫翻頁的導航,1234頁之類的
每次根據不頁碼的信息(這個頁碼的信息應該是通過get方式得來,比如?page=3這樣的參數)和以前存的查詢條件,從資料庫中再取出對應的結果集,應該是通過hibernate設置一下起始記錄數、最大記錄數
大概就是這樣的,可能還有些細節沒有說到,自己好好整理一下吧,希望能幫助到你
6. hibernate中純sql語句查詢,當分頁的時候會第二頁以後會多出一列行號(包含第二頁)
hibernate 分頁查詢的時候會將你的查詢語句結果作為結果集然後在此之上查詢*
select * from (***********) where rownum<30(←這是第一頁每頁三十個)
select * from
(
select * from (***********) where rownum<60
)
where rownum_>30(←這是第二頁每頁三十個)
所以多出來一列 具體解決方式....... 我也不太清楚我也碰到了這個問題 原因找到了 我正在想辦法處理
7. hibernate分頁方法query.setFirstResult();setMaxResults();
query.setFirstResult(1500);query.setMaxResults(15); 是基於資料庫sql語句的分頁方式,對於hibernate分頁我只用過兩種
1.query.setFirstResult();query.setMaxResults(); 基於資料庫sql
2.query.scroll(); 基於內存分頁
第一種方式,hibernate會根據不同資料庫方言 翻譯成對於的分頁語句,執行效率比較高
第二種是 現將所需要分頁數據的最大值 取到內存中,這樣好處是 選擇其他分頁數據非常快,當軟確定就是 會out of memory
你參考一下吧 我的不一定正確
8. hibernate中分頁查詢怎麼做的
Hirbernate ,它自帶分頁API
例如:
Query q = sess.createQuery("from XXX");
q.setFirstResult(20);設置起始行
q.setMaxResults(10);每頁條數
List cats = q.list(); //得到每頁的數據
9. JDBC,Hibernate 分頁怎樣實現
答:方法分別為:
1) Hibernate 的分頁:
Query query = session.createQuery(from Student);
query.setFirstResult(firstResult);//設置每頁開始的記錄號
query.setMaxResults(resultNumber);//設置每頁顯示的記錄數
Collection students = query.list();
2) JDBC 的分頁:根據不同的資料庫採用不同的sql 分頁語句
例如: Oracle 中的sql 語句為: SELECT * FROM (SELECT a.*, rownum r FROM
TB_STUDENT) WHERE r between 2 and 10″ 查詢從記錄號2 到記錄號10 之間的所有記錄
10. hibernate如何實現分頁
public List getBy分頁(final int start, final int max) {//start表示從第幾條開始顯示,max表示一次顯示幾條數據
List<Users> page = new ArrayList<Users>();
page=(List<Users>)this.getHibernateTemplate().executeFind(new HibernateCallback(){
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
List<Users> list = new ArrayList<Users>();
list = session.createQuery("From Users").setFirstResult(start).setMaxResults(max).list();//這里設置分頁顯示的數據
return list;
}
});
return page;
}
該方法是在你的實現類繼承了HibernateDaoSupport方可使用。