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

📄 basedao.java

📁 学生成绩管理系统
💻 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 + -