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打包好了的工具类
热度:175 发布时间:2012-11-03 10:57:44.0
相关解决方案
- hibernate 存入数据库当前时间
- hibernate DAO中加了局物,未提交
- hibernate 字段lazy 的兑现原理
- Hibernate 的query.list()的有关问题
- Hibernate 关联表字段赋值有关问题
- hibernate 联接mysql出错
- struts2 hibernate 分页有关问题
- hibernate与此同时使用多数据源?spring+hibernate
- hibernate 保留对象时,根据映射文件,无法获取主键值
- hibernate 多对1关联配置有关问题
- hibernate 一对1 ,插入不进去数据
- struts+spring+hibernate 开发,在action层调用service层接口,结果替null 注入失败,需高手帮忙
- SSH框架导入struts,hibernate,spring分先后顺序吗>>解决方法
- 请教小弟我不使用Myeclipse,可以在tomcat里面整合Spring,Hibernate,Struts2吗
- Hibernate 保存数据有关问题本人初学者
- hibernate 用hql怎么实现子查询
- struts hibernate,该如何处理
- hibernate hql "=:"符号?解决思路
- null id in com.bsw.gms.hibernate.pojo.Score entry (don't flush the Session after an exception occurs,该怎么解决
- Hibernate flush机制的了解
- 求 Hibernate 3.32 API 汉语言文档
- 求1 struts 2+hibernate+spring整合好的项目
- ,Struts2+Hibernate+Spring做一个网站
- hibernate Save 指定值为函数有关问题(ORACEL库)
- hibernate Query.createQuery(queryString).list();查询最大只有1000条数据,该怎么处理
- hibernate 联合主键自增有关问题
- 哪位高手能推荐下开源的购物网站源码(struts+hibernate+spring)
- Spring+Struct2+Hibernate 集成有关问题
- Hibernate 缓存配置无效,该怎么解决
- hibernate fectch = FetchType.LAZY 如何理解