zoukankan      html  css  js  c++  java
  • Hibernate简易BaseDao演示单例

          本文由广州疯狂软件java培训分享:

      Hibernate简易BaseDao演示单例模式和线程池

      Hibernate简易BaseDao演示单例模式和线程池

      package com.dao;

      import java.util.List;

      import org.hibernate.HibernateException;

      import org.hibernate.Session;

      import org.hibernate.SessionFactory;

      import org.hibernate.Transaction;

      import org.hibernate.cfg.Configuration;

      import com.IConst.IConst;

      public class BaseDao { private static Configuration cf;

      private static SessionFactory sf;

      /* 实例化线程池 */ private ThreadLocal thread = new ThreadLocal();

      static { init();

      } /* * 单例模式 * */

      private static synchronized void init()

      { try { if (null == cf || null == sf)

      { cf = new Configuration()。configure();

      sf = cf.buildSessionFactory();

      } } catch (HibernateException e)

      { e.printStackTrace();

      } } /* * open方法

      * */ private void open() throws Exception {

      /* 先从线程池中取 */ Session session = thread.get();

      /* 取不到,利用工厂新建 */ if (null == session)

      { session = sf.openSession();

      /* 将新建的session放入线程池 */ thread.set(session);

      } } /* *

      close方法 * */ private void close()

      { try { /* 从线程池中取 */ Session session = thread.get();

      /* 取到,关闭 */ if (null != session) { session.close();

      /* 清空线程池 */ thread.set(null);

      } } catch (HibernateException e)

      { e.printStackTrace();

      } } /* * 执行增删改 * */ public boolean update(Object obj, int type)

      { Session session = null;

      Transaction tran = null;

      try { open();

      /* 取出session */ session = thread.get();

      /* 打开事务 */ tran = session.beginTransaction();

      switch (type) { case IConst.DELETE: session.delete(obj);

      break; case IConst.INSERT: session.save(obj);

      break; case IConst.UPDATE: session.update(obj);

      break; }

      /* Hibernate的事务机制是先将其保存在缓存中

      */ /* 只有commit以后,才将事务提交 */ /* 提交事务

      */ tran.commit();

      return true;

      } catch (Exception e)

      { if (null != tran) { tran.rollback();

      } e.printStackTrace();

      } finally { close(); } return false;

      } /* * 查询方法 * */ public List select(String sql) { Session session = null;

      try { open();

      session = thread.get();

      return session.createQuery(sql)。list();

      } catch (Exception e)

      { e.printStackTrace();

      } finally { close();

      } return null;

      }}

      疯狂软件教育中心依托开发团队的强大技术实力,把企业最新技术融入实训课程,打造金牌的品质,才能给予学员黄金的未来,疯狂软件凭借过硬的技术实力与丰富的项目开发经验,赢得了社会的肯定。疯狂软件Java培训师资力量强大,课程内容深入,为学员高薪就业做了很好的铺垫,拥有丰富就业指导经验的就业团队也成为了学员高薪就业的先天优势。地址:广州天河区车陂沣宏大厦3楼。

  • 相关阅读:
    How to Create a site at the specified URL and new database (CommandLine Operation)
    Using Wppackager to Package and Deploy Web Parts for Microsoft SharePoint Products and Technologies
    SQL Server Monitor v0.5 [Free tool]
    How to build Web Part
    Deploy web part in a virtual server by developing a Web Part Package file(.cab)
    How to recreate "sites" link if you delete it accidentally
    SharePoint Portal Server管理匿名访问设置
    Monitor sql connection from .Net SqlClient Data Provider
    Brief installation instruction of Sharepoint Portal Server
    How to Use SharePoint Alternate URL Access
  • 原文地址:https://www.cnblogs.com/gojava/p/3615518.html
Copyright © 2011-2022 走看看