📄 studentdaoimpl.java
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -