📄 pagebeandaoimpl.java
字号:
package com.chinahr.dao.impl;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.List;
import org.hibernate.Hibernate;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.chinahr.dao.PageBeanDao;
import com.chinahr.util.PageBean;
public class PageBeanDaoImpl extends HibernateDaoSupport implements PageBeanDao {
Session session;
String returnType;
public PageBean GetPageResult(PageBean bean) {
session=this.getSession();
try {
Query query=session.createQuery(bean.getQueryString());
query.setFirstResult((bean.getCurPageCount()-1)*bean.getPerPageLine());
query.setMaxResults(bean.getPerPageLine());
List list=query.list();
bean.setPgetResult(list);
if(bean.isPageState())
{
String hql=bean.getQueryString();
int i=hql.indexOf("from");
hql="Select Count(*) "+bean.getQueryString().substring(i,hql.length());
int index=0;
if((index=hql.indexOf("order by"))!=-1)
{
hql=hql.substring(0,index);
}
Object obj=session.createQuery(hql).uniqueResult();
if(obj!=null)
{
bean.setTotalLineCount(Integer.parseInt(obj.toString()));
}
}
return bean;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public PageBean GetPageResult(PageBean bean,boolean isInit) {
session=this.getSession();
try {
Query query=session.createQuery(bean.getQueryString());
query.setFirstResult((bean.getCurPageCount()-1)*bean.getPerPageLine());
query.setMaxResults(bean.getPerPageLine());
List list=query.list();
InitList(list);
bean.setPgetResult(list);
if(bean.isPageState())
{
String hql=bean.getQueryString();
int i=hql.indexOf("from");
hql="Select Count(*) "+bean.getQueryString().substring(i,hql.length());
int index=0;
if((index=hql.indexOf("order by"))!=-1)
{
hql=hql.substring(0,index);
}
Object obj=session.createQuery(hql).uniqueResult();
if(obj!=null)
{
bean.setTotalLineCount(Integer.parseInt(obj.toString()));
}
}
return bean;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public void InitList(List list)
{
//invoke()
//Annotation
//反射
for(int i=0;i<list.size();i++)
{
Method [] meths=list.get(i).getClass().getMethods();
for(int j=0;j<meths.length;j++)
{
if(meths[j].getName().startsWith("get")&&meths[j].getReturnType().getName().indexOf(returnType)!=-1)
{
try {
Hibernate.initialize(meths[j].invoke(list.get(i), null));
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
}
}
public void setReturnType(String returnType) {
this.returnType = returnType;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -