• 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
  • 相关阅读:
    Dart语言学习笔记(5)
    使用 Dart 调用 REST API
    JSON数据的解析和生成(Dart)
    趣味编程:静夜思(Dart版)
    正则表达式(Dart)
    Dart语言学习笔记(4)
    Dart语言学习笔记(3)
    C++11特性之右值引用
    各大编程字体比较
    优先队列的应用 C++实现
  • 原文地址:https://www.cnblogs.com/lucio_yz/p/4323030.html
Copyright © 2020-2023  润新知