basedao.java

来自「初学着 hibernate 基本应用 基本语法, Hibernate 高级分页」· Java 代码 · 共 116 行

JAVA
116
字号
package com.accp.dao;

import java.io.Serializable;
import java.util.*;

import org.hibernate.*;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Restrictions;
import org.hibernate.criterion.Projections;
import com.accp.*;
import com.accp.hib.HibernateSessionFactory;

public class BaseDao {
	/*
	 * 用Query来执行一个分页查询
	 * */
	protected List getList(String hql,int curPage,int pageSize ){
	  List list = null;
	  Session se = HibernateSessionFactory.getSession();
	  
	  list = se.createQuery(hql)
	  .setFirstResult((curPage-1)*pageSize)
	  .setMaxResults(pageSize)
	  .list();
	  
	  se.close();
	  return list;
  }
	/*
	 * 用Query来执行查询
	 * */
	protected List getList(String hql){
		  List list = null;
		  Session se = HibernateSessionFactory.getSession();
		  
		  list = se.createQuery(hql)
		
		  .list();
		  
		  se.close();
		  return list;
	  }
	/*
	 * 用Criteria来执行一个分页查询
	 * */
	protected List doDcHQL(DetachedCriteria dcHql,int curPage,int pageSize ){
		  List list = null;
		  Session se = HibernateSessionFactory.getSession();
		  list =  dcHql.getExecutableCriteria(se)
		  .setFirstResult((curPage-1)*pageSize)
		  .setMaxResults(pageSize)
		  .list();
	 
		  se.close();
		  return list;
	  }
	

	/*
	 * 用Criteria来执行一个分页查询
	 * */
	protected int getCountUseDcHql(DetachedCriteria dcHql){
		  dcHql.setProjection(Projections.count("id"));
		  Session se = HibernateSessionFactory.getSession();
		  List list =  dcHql.getExecutableCriteria(se)
		  .list();
	 
		  se.close();
		  return (Integer)list.get(0);
	  }
  protected void deleteObj(Object obj){
	  Session se = HibernateSessionFactory.getSession();
	  Transaction t = se.beginTransaction();
	  
	  se.delete(obj);
	  
	  t.commit();
	  se.close();
  }

  protected void insertObj(Object obj){
	  Session se = HibernateSessionFactory.getSession();
	  Transaction t = se.beginTransaction();
	  
	  se.save(obj);
	  
	  t.commit();
	  se.close();
  }

  protected void updateObj(Object obj){
	 
	  Session se = HibernateSessionFactory.getSession();
	  Transaction t = se.beginTransaction();
	  
	  se.saveOrUpdate(obj);
	  
	  t.commit();
	  se.close();
  }
  /*
   * 根据对象主键加载一个对象
   * */
  public Object getObj(Class c,Serializable id){
      Object o = null;
	  Session se = HibernateSessionFactory.getSession();
	  
	  o = se.get(c, id);
	  
	  se.close(); 
	  return o;
  }
 
}

⌨️ 快捷键说明

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