📄 basedao.java
字号:
package com.stuman.util;
import java.io.Serializable;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import com.stuman.dao.hibernate.HibernateUtil;
public abstract class BaseDao {
public PageBean getObjects(Class clazz, PageBean page) {
try {
Session session = HibernateUtil.currentSession();
HibernateUtil.beginTransaction();
String queryString = page.getQueryString();
Query query = null;
Object values[] = page.getValues();
List list;
if (!page.isNeedSplitPage()) {
query = session.createQuery(queryString);
if (queryString.indexOf('?') > 0 && values != null) {
for (int i = 0; i < values.length; i++)
query.setParameter(i, values[i]);
}
list = query.list();
HibernateUtil.commitTransaction();
HibernateUtil.closeSession();
page.setContent(list);
return page;
}
String queryStr = "";
if (page.getRecordsPerPage() > 0) {
if (queryString.toLowerCase().indexOf("order") != -1) {
queryStr = "select count(*) "
+ queryString.substring(0, queryString
.toLowerCase().indexOf("order"));
} else {
queryStr = "select count(*) " + queryString;
}
System.out.println("quert==="+ queryStr );
query = session.createQuery(queryStr);
if (queryStr.indexOf('?') > 0 && values != null) {
for (int i = 0; i < values.length; i++){
System.out.println("quert==="+ values[i] );
query.setParameter(i, values[i]);
}
}
Integer totalRecord = (Integer) query.list().get(0);
HibernateUtil.commitTransaction();
page.setTotalRecords(totalRecord);
int totalPage = 1;
totalPage = totalRecord % page.getRecordsPerPage() != 0 ? totalRecord/ page.getRecordsPerPage() + 1: totalRecord / page.getRecordsPerPage();
page.setTotalPage(totalPage);
if (page.getCurrentPage() > totalPage)
page.setCurrentPage(totalPage);
} else {
page.setTotalPage(1);
page.setCurrentPage(1);
}
query = session.createQuery(queryString);
if (queryString.indexOf('?') > 0 && values != null) {
for (int i = 0; i < values.length; i++)
query.setParameter(i, values[i]);
}
if (page.getRecordsPerPage() > 0) {
query.setFirstResult((page.getCurrentPage() - 1)
* page.getRecordsPerPage());
query.setMaxResults(page.getRecordsPerPage());
}
list = query.list();
if (page.getRecordsPerPage() < 0)
page.setTotalRecords(list.size());
HibernateUtil.commitTransaction();
HibernateUtil.closeSession();
page.setContent(list);
return page;
} catch (HibernateException e) {
log.fatal(e);
}
return null;
}
public void update(Class clazz, Serializable id) {
}
public void deleteObject(Class clazz, Serializable id) {
}
public Object getObject(Class clazz, Serializable id) {
return null;
}
protected final Log log = LogFactory.getLog(getClass());
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -