博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
管理Session
阅读量:5021 次
发布时间:2019-06-12

本文共 2264 字,大约阅读时间需要 7 分钟。

1:把session和本地线程绑定在一起。

1):创建一个sessionFactory。然后由它去创建session

package com.hq.util;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 HibernateUtils {        private HibernateUtils(){}        private static HibernateUtils instance=new HibernateUtils();        public static HibernateUtils getInstance(){        return instance;    }        private SessionFactory sessionFactory;    public SessionFactory getSessionFactory() {        if (sessionFactory == null) {            Configuration configuration = new Configuration().configure();            ServiceRegistry serviceRegistry = new ServiceRegistryBuilder()                    .applySettings(configuration.getProperties())                    .buildServiceRegistry();            sessionFactory = configuration.buildSessionFactory(serviceRegistry);        }        return sessionFactory;    }        public Session getSession(){        return getSessionFactory().getCurrentSession();    }}

使用:getCurrentSession()方法。

2):通过单例的HibernateUtils来得到session

public class DeptDao {    public void save(Department dept){        Session session=HibernateUtils.getInstance().getSession();        System.out.println(session.hashCode());//        session.save(dept);    }    }

3):在配置文件中配置

thread

4):测试

@org.junit.Test    public void testSession(){                //获取 Session                //开启事务                Session session = HibernateUtils.getInstance().getSession();                System.out.println("-->" + session.hashCode());                Transaction transaction = session.beginTransaction();                DeptDao departmentDao = new DeptDao();                                Department dept = new Department();                dept.setName("ATGUIGU");                                departmentDao.save(dept);                departmentDao.save(dept);                departmentDao.save(dept);                                //若 Session 是由 thread 来管理的, 则在提交或回滚事务时, 已经关闭 Session 了.                 transaction.commit();                System.out.println(session.isOpen());     }

 

转载于:https://www.cnblogs.com/bulrush/p/7881697.html

你可能感兴趣的文章
嗯~把代码存到blog,归类就方便了~
查看>>
笨办法学Python——学习笔记2
查看>>
iOS 通知的使用
查看>>
leetcode - Remove Duplicates from Sorted Array II
查看>>
2-11 十六进制
查看>>
tmux
查看>>
Js 替代
查看>>
pytorch之Resize()函数
查看>>
[Jobdu] 题目1510:替换空格
查看>>
chrome extension setUpdateUrlData 使用
查看>>
latex采坑记01
查看>>
20165301 2017-2018-2 《Java程序设计》第九周学习总结
查看>>
1044 火星数字(20 分)
查看>>
L1-033 出生年
查看>>
html 定位
查看>>
eclipse中报错:Errors running builder “Integrated External Tool Builder” on project
查看>>
《软件需求模式》阅读笔记之二
查看>>
数据分析处理库Pandas——字符串操作
查看>>
Distinct Subsequences
查看>>
名词解释
查看>>