zoukankan      html  css  js  c++  java
  • HibernateUtil的编写,主要是建立数据库的连接

    package com.yh.entity;
    
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.Configuration;
    
    public class HibernateUtil {
        // 初始化一个ThreadLocal对象
        private static final ThreadLocal<Session> sessionTL = new ThreadLocal<Session>(); // 1
        private static Configuration configuration;
        private final static SessionFactory sessionFactory;
        static {
            try {
                configuration = new Configuration().configure();
                sessionFactory = configuration.buildSessionFactory();
            } catch (Throwable ex) {
                ex.printStackTrace();
                throw new ExceptionInInitializerError(ex);
            }
        }
        public static Session currentSession() {
            //sessionTL的get()方法根据当前线程返回其对应的线程内部变量,
            //也就是我们需要的Session,多线程情况下共享数据库链接是不安全的。
            //ThreadLocal保证了每个线程都有自己的Session。
            Session session = (Session) sessionTL.get(); // 2
            // 如果session为null,则打开一个新的session
            if (session == null) { // 3
                //创建一个数据库连接对象session。
                session = sessionFactory.openSession(); // 4
                // 保存该数据库连接session到ThreadLocal中。
                sessionTL.set(session); // 5
            }
            //如果当前线程已经访问过数据库了,
            //则从sessionTL中get()就可以获取该线程上次获取过的数据库连接对象。
            return session; // 6
        }
        public static void closeSession(){
            Session session = (Session) sessionTL.get(); // 2
            sessionTL.set(null);
            if(session!=null)
                session.close();
        }
    
    }

    建立与数据库的连接,打开session,和关闭session,每次用时可以直接使用

  • 相关阅读:
    sc 使用
    sql端点应用
    今天面试笔试了一道SQL面试题,狠简单
    指定域的名称或安全标识SID与该域的信任信息不一致
    查询登陆时间间隔不超过5分钟的所有记录
    sql打开xls
    Android控件开发
    android开发1【转】网络设备状态检测
    google.maps Simple Polylines
    Notification 使用详解(很全
  • 原文地址:https://www.cnblogs.com/jimorulang/p/5551899.html
Copyright © 2011-2022 走看看