⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pagebeandaoimpl.java

📁 仿招聘网站 SSH框架 ajax功能
💻 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 + -