sjournaldao.java

来自「持久层hibernate技术使用的一个例子」· Java 代码 · 共 59 行

JAVA
59
字号
package cn.hope.front.pojo.dao;

import java.util.List;

import net.sf.hibernate.HibernateException;
import net.sf.hibernate.Query;

import org.apache.log4j.Logger;

import cn.hope.front.pojo.base.BaseSJournalDAO;


public class SJournalDAO extends BaseSJournalDAO {

	/**
	 * Default constructor.  Can be used in place of getInstance()
	 */
	public SJournalDAO () {}
Logger log = Logger.getLogger(TTestInfoDAO.class.getName());
	
	private int count = 0;

	public int getCount() {
		return this.count;
	}
	public List searchSJournal(String id, int start, int range, boolean isEq)throws HibernateException{
	    StringBuffer sqlStr = new StringBuffer();
	    StringBuffer condition = new StringBuffer();
	    StringBuffer sqlCnt = new StringBuffer();// 取总记录数
		sqlCnt.append("select count(sJournal.sjouId) from SJournal sJournal where sJournal.flag='0' and sJournal.student.SUsername='"+id+"'");//计算结果总和
		sqlStr.append("select sJournal from SJournal sJournal where sJournal.flag='0' and sJournal.student.SUsername='"+id+"'");
		System.out.println(sqlStr+"!!!!!!!!!!!!!!!!");
		List list = null;
		try {
			initialize();
			Query queryCnt = this.getSession().createQuery(
					sqlCnt.toString() + condition);// 通过hibernate的Query方法查询数据库(自己看文档)
			Integer count = (Integer) queryCnt.uniqueResult();// 得到总记录数
			this.count = count.intValue();
			
			Query query = this.getSession().createQuery(sqlStr.toString());
			query.setFirstResult(start);// 设置查询起始记录数
			query.setMaxResults(range);// 设置查询总记录数
			list = query.list();
			
		} 
		catch(HibernateException e){
			log.error(e);
			e.printStackTrace();
			throw new HibernateException(e);
		}
		finally{
			closeCurrentThreadSessions();
		}
		return list;
	}


}

⌨️ 快捷键说明

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