zoukankan      html  css  js  c++  java
  • Hibernate之工具类HibernateUtil

    原创文章,转载请注明:Hibernate之工具类HibernateUtil  By Lucio.Yang

    1.最简单的工具类,实现SessionFactory的单例共享,session的管理

    package com.cc.hibernate;
    
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.Configuration;
    import org.hibernate.service.ServiceRegistry;
    import org.hibernate.service.ServiceRegistryBuilder;
    
    public class HibernateUtil {
        //创建工厂类,是静态的单例的,只能被赋值一次
        private static final SessionFactory sessionFactory=buildSessionFactory();
        /** init sessionFactory */
        private static SessionFactory buildSessionFactory(){
            SessionFactory sessionFactory=null;
            try{
                //configure函数里面可以写hibernate的配置文件,空则默认为hibernate.cfg.xml
                Configuration configuration=new Configuration().configure();
                ServiceRegistry serviceRegistry=new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();
                sessionFactory= configuration.buildSessionFactory(serviceRegistry);
            }
            catch(Throwable te){
                System.err.println("init sessionFactory Error:"+te);
                te.printStackTrace();
            }
            return sessionFactory;
        }
        /** get session */
        public static Session getSession(){
            //得到session
            Session session=sessionFactory.openSession();
            return session;
        }
    }

    2.将常见事务方法封装进工具类

    添加如下方法:

    //删除
    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;  
    } 
    //更新
    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;  
    } 
    //增加
    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;  
    }
    //执行sql语句,返回单条记录
    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;  
    }   
    参考:http://blog.csdn.net/hanhan313/article/details/8125924
  • 相关阅读:
    python引用.py文件
    推荐系统之矩阵分解 转载 特别好
    数据挖掘之一元线性回归 python代码
    system服务文件讲解 转载
    bin sbin /usr/bin /usr/sbin区别 转载
    linux设置部门(或者学生部门)的共享目录
    Error establishing a database connection wordpress网站出现这个问题centos7的
    tomcat的java项目部署位置
    MAMP PRO教程
    MAMP使用简单教程
  • 原文地址:https://www.cnblogs.com/lucio_yz/p/4323030.html
Copyright © 2011-2022 走看看