码迷,mamicode.com
首页 > Web开发 > 详细

Hibernate(十三)Session管理

时间:2015-07-22 13:11:58      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:

Hibernate有了新的版本,部分内容待更新。

package test.hibernate.hbmSessionManage;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.junit.Test;

public class App {

	private static SessionFactory sessionFactory = new Configuration()//
			.configure("test/hibernate/hbmSessionManage/myhibernate.cfg.xml")//
			.buildSessionFactory();

	/*
	 * 要想使用SessionFactory.getCurrentSession()方法
	 * 需要在Hibernate主配置文件中配置current_session_context_class项
	 */
	@Test
	public void testSession() throws Exception {
		// Session session1 = sessionFactory.getCurrentSession();
		// Session session2 = sessionFactory.getCurrentSession();

		// Session session1 = sessionFactory.openSession();
		// Session session2 = sessionFactory.openSession();

		Session session1 = sessionFactory.openSession();
		Session session2 = sessionFactory.getCurrentSession();

		System.out.println(session1 != null);
		System.out.println(session1 == session2);

	}

	/*
	 * getCurrentSession():指定上下文中(如thread)查找绑
	 * 定的Session对象,如果有就返回;
	 * 如果没有就创建一个并绑定,然后返回 openSession():只是
	 * 开启一个新的Session,不会做绑定和查找操作
	 */
	@Test
	public void testSessionClose() throws Exception {

		Session session2 = sessionFactory.getCurrentSession();
		session2.beginTransaction();

		System.out.println("xxxxxxxxxxxxxxxxxxxxxx");
		session2.getTransaction().commit();
		// session2.close();
	}
}
同名包下

<!DOCTYPE hibernate-configuration PUBLIC
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
	<session-factory name="foo">
		<!-- 配置数据库信息 -->
		<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
		<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="connection.url">jdbc:mysql://localhost:3306/hibernate_2015</property>
		<!-- 可简写为<property name="connection.url">jdbc:mysql:///hibernate_2015</property> -->
		<property name="connection.username">root</property>
		<property name="connection.password">686175</property>
		<!-- 显示生成的sql语句,不写的话默认是false -->
		<property name="show_sql">true</property>

        <!-- 当配置为thread时,SessionFactory的getCurrentSession()方法就可以用了 -->
        <property name="current_session_context_class">thread</property>

	</session-factory>
</hibernate-configuration>

待续

版权声明:本文为博主原创文章,未经博主允许不得转载。如需转载,请注明出处:http://blog.csdn.net/lindonglian

Hibernate(十三)Session管理

标签:

原文地址:http://blog.csdn.net/lindonglian/article/details/47000377

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!