studentdaoimpl.java

来自「struts分页功能实现代码 开发环境 ECLIPSE+STRUTS+HIBE」· Java 代码 · 共 70 行

JAVA
70
字号
package cn.com.javapro.dao;

import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

import cn.com.javapro.fwk.PageRoll;
import cn.com.javapro.hibernate.HibernateSessionFactory;
import cn.com.javapro.vo.Student;


/**
 * 
 * @description:学生对象DAO实现
 * @group: javapro 
 * @author: vince
 *
 */
public class StudentDAOImpl implements IStudentDAO{

	/**
	 * 
	 *  实现父类方法  
	 *  @see bsw.dao.IStudentDAO#search(bsw.fwk.PageRoll)
	 */
	public Student[] search(PageRoll pageRoll) throws HibernateException {
		Session session = null;
		Transaction t = null;
		Student[] students = null;
		try {
			session = HibernateSessionFactory.currentSession();
			t = session.beginTransaction();
			Query query = session.createQuery(pageRoll.getWhereClause());

			// 如果总记数为-1,说明不是翻页
			int _totalCount = pageRoll.getTotalCount();
			if (_totalCount == -1) {
				pageRoll.setTotalCount(query.list().size());
			}

			// 设置起始记录
			query.setFirstResult((pageRoll.getCurrentPage() - 1)
					* pageRoll.getPageSize());
			query.setMaxResults(pageRoll.getPageSize());

			// 返回记录集
			List list = query.list();
			session.flush();
			t.commit();

			// 将记录集转换为需要的对象数组
			students = new Student[list.size()];
			for (int i = 0; i < list.size(); i++) {
				students[i] = (Student) list.get(i);
			}

		} catch (HibernateException e) {
			t.rollback();
			e.printStackTrace();
		} finally {
			if (session != null)
				session.close();
		}
		return students;
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?