首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

Hibernate打包好了的工具类

2012-11-03 
Hibernate封装好了的工具类package utilimport java.util.ArrayListimport java.util.Listimport org.h

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){//关闭sessionsession.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){//关闭sessionsession.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){//关闭sessionsession.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){//关闭sessionsession.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;} }

热点排行