首页 > 代码库 > Hibernate工具类

Hibernate工具类

package util;import java.util.ArrayList;import java.util.List;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.hibernate.service.ServiceRegistry;import org.hibernate.service.ServiceRegistryBuilder;import entity.UserInfo;public class HibernateUtil{  private static SessionFactory sessionFactory;   /** * @return 获取会话工厂 */  public static SessionFactory getSessionFactory()  {    //第一步:读取Hibernate的配置文件  hibernamte.cfg.xml文件    Configuration con=new Configuration().configure();    //第二步:创建服务注册构建器对象,通过配置对象中加载所有的配置信息    ServiceRegistryBuilder regbulider=new ServiceRegistryBuilder().applySettings(con.getProperties());    //创建注册服务    ServiceRegistry reg=regbulider.buildServiceRegistry();    //第三步:创建会话工厂    SessionFactory sessionFactory=con.buildSessionFactory(reg);    return sessionFactory;  }   /** * @return 获取会话对象 */  public static Session getSession()  {     return getSessionFactory().openSession();  }    /** * @param obj 添加数据 * @return */  public static boolean add(Object obj)  {    Session session=null;    Transaction tran=null;    boolean result=false;    try    {        session=getSession();        tran=session.beginTransaction();        session.save(obj);        tran.commit();        result=true;    }    catch (Exception e)    {       if(tran!=null)       {           //事物回滚           tran.rollback();       }    }    finally    {        if(session!=null)        {            //关闭session            session.close();        }    }    return result;  }    /** * @return 更新数据  * 参数为修改的主键id对象 */public static boolean update(Object object)  {        Session session=null;        Transaction tran=null;        boolean result=false;        try        {            session=getSession();            tran=session.beginTransaction();            session.update(object);            tran.commit();            result=true;        }        catch (Exception e)        {           if(tran!=null)           {               //事物回滚               tran.rollback();           }        }        finally        {            if(session!=null)            {                //关闭session                session.close();            }        }        return result;      }       /** * @param c * @param obj  查询一条数据根据主键的id号 * @return */  public static Object get(Class c,int obj)  {        Session session=null;        Object object=null;        try        {            session=getSession();            object=session.get(c,obj);        }        catch (Exception e)        {        }        finally        {            if(session!=null)            {                //关闭session                session.close();            }        }        return object;  }  /** * @param obj * @return 删除数据 */public static boolean delete(Object obj)  {        Session session=null;        Transaction tran=null;        boolean result=false;        try        {            session=getSession();            tran=session.beginTransaction();            session.delete(obj);            tran.commit();            result=true;        }        catch (Exception e)        {           if(tran!=null)           {               //事物回滚               tran.rollback();           }        }        finally        {            if(session!=null)            {                //关闭session                session.close();            }        }        return result;  }  /** * @param <T> 查询多条记录 * @param sql  sql语句 * @param param 参数数组 * @return */ @SuppressWarnings("unchecked")public static <T> List<T> query(String sql,String[] param)  {      List<T> list=new ArrayList<T>();      Session session=null;       try        {            session=getSession();            Query query=session.createQuery(sql);            if(param!=null)            {                for(int i=0;i<param.length;i++)                {                    query.setString(i,param[i]);                    }            }            list=query.list();        }        catch (Exception e)        {        }        finally        {            if(session!=null)            {                session.close();            }        }      return list;  }  /** * @param sql * @param param 查询单条记录 * @return */public static Object queryOne(String sql,String[] param)  {      Object object=null;      Session session=null;       try        {            session=getSession();            Query query=session.createQuery(sql);            if(param!=null)            {                for(int i=0;i<param.length;i++)                {                    query.setString(0,param[i]);                    }                object=query.uniqueResult();            }        }        catch (Exception e)        {        }        finally        {            if(session!=null)            {                session.close();            }        }      return object;  }/** * @param <T> * @param sql * @param param * @param page * @param size * @return 实现分页查询 */@SuppressWarnings("unchecked")public static <T> List<T> queryByPage(String sql,String[] param,int page,int size)  {      List<T> list=new ArrayList<T>();      Session session=null;       try        {            session=getSession();            Query query=session.createQuery(sql);            if(param!=null)            {                for(int i=0;i<param.length;i++)                {                    query.setString(i,param[i]);                    }            }            //筛选条数            query.setFirstResult((page-1)*size);            query.setMaxResults(size);            list=query.list();        }        catch (Exception e)        {        }        finally        {            if(session!=null)            {                session.close();            }        }      return list;  }/** * @param hql * @param pras * @return返回数据个数 */public static int getCount(String hql, String[] pras) {    int resu = 0;    Session s = null;    try {        s = getSession();        Query q = s.createQuery(hql);        if (pras != null) {            for (int i = 0; i < pras.length; i++) {                q.setString(i, pras[i]);            }        }        resu = Integer.valueOf(q.iterate().next().toString());    } catch (Exception e) {        e.printStackTrace();    } finally {        if (s != null)            s.close();    }    return resu;} }

 

Hibernate工具类