SessionFactory:使用与配置
<bean id="dataSource" class="com.mchange.v2.c3p0. ComboPooledDataSource" destroy-method="close"><!-- 指定连接数据库的驱动 --><property name="driverClass" value="com.mysql.jdbc.Driver"/><!-- 指定连接数据库的URL --><property name="jdbcUrl" value="jdbc:mysql://localhost/j2ee"/><!-- 指定连接数据库的用户名 --><property name="user" value="root"/><!-- 指定连接数据库的密码 --><property name="password" value="32147"/><!-- 指定连接数据库连接池的最大连接数 --><property name="maxPoolSize" value="40"/><!-- 指定连接数据库连接池的最小连接数 --><property name="minPoolSize" value="1"/><!-- 指定连接数据库连接池的初始化连接数 --><property name="initialPoolSize" value="1"/><!-- 指定连接数据库连接池的连接最大空闲时间,改时间段内不对数据库做任何操作,既断开链接 --><property name="maxIdleTime" value="20"/></bean><!-- 定义Hibernate的SessionFactory --><bean id="sessionFactory" class="org.springframework.orm.hibernate3. LocalSessionFactoryBean"><!-- 依赖注入数据源,正是上文定义的dataSource --><property name="dataSource" ref="dataSource"/><!-- mappingResources属性用来列出全部映射文件 --><property name="mappingResources"><list><!-- 以下用来列出所有的PO映射文件 --><value>lee/MyTest.hbm.xml</value></list></property><!-- 定义Hibernate的SessionFactory属性 --><property name="hibernateProperties"><props><!-- 指定Hibernate的连接方言 --><prop key="hibernate.dialect">org.hibernate.dialect. MySQLDialect</prop><!-- 配置启动应用时,是否根据Hibernate映射自动创建数据表 --><prop key="hibernate.hbm2ddl.auto">update</prop></props></property></bean></beans> 一旦在Spring的IoC容器中配置了SessionFactory Bean,它将随应用的启动而加载,并可以充分利用IoC容器的功能,将 SessionFactory Bean注入任何Bean,比如DAO组件。一旦DAO组件获得了SessionFactory Bean的引用,就可以完成实际的数据库访问。当然,Spring也支持访问容器数据源。如果需要使用容器数据源,可将数据源Bean修改成如下配置:<!-- 此处配置JNDI数据源 --><bean id="myDataSource" class="org.springframework.jndi.JndiObjectFactoryBean"><property name="jndiName"><!-- 指定数据源的JNDI --><value>java:comp/env/jdbc/myds</value></property></bean>
SessionFactory:
a) 用来产生和管理Session
b)通常情况下每个应用只需要一个SessionFactory
c)除非要访问多个数据库的情况
d) 关注两个方法即: openSession 和 getCurrentSession
i. openSession 每次都是新的,需要close
ii. getCurrentSession 从上下文找,如果有,用旧的,如果没有,建新的
1,用途,界定事务边界
2,事务提交自动close
3,跟current_session_context_class (JTA、thread) 有关系
a)thread 使用 connection
注:上下文是什么?当前session运行的上下文,在hibernate.cfg.xml里指定的:
最常用的就是thread,看当前的线程里有没有session对象,有了就拿,没有就建新的。
<!-- Enable Hibernate's automatic session context management --><property name="current_session_context_class">thread</property>
SessionFactory怎么理解?
SessionFactory,产生session的工厂。一般情况下,每一个session里都有一个数据库的连接,(如果没有数据库连接,怎么和数据库打交道呢?)所以产生session的工厂里边一定有好多个数据库连接,所以SessionFactory维护的最重要的东西就是数据库连接池。当它产生一个session的时候,他会从数据库连接池拿出一个连接交给session。
SessionFactory:使用与配置相关推荐
- spring4+hibernate4配置sessionFactory错误
配置使用spring来管理sessionFactory. 这个配置需要在applicationContext.xml中来配置 解决方案: <bean id="sessionFactor ...
- Spring配置SessionFactory
Spring的核心模块之一为依赖注入,普遍使用的为Set方式注入,那么下面将借助该方式配置数据源和SessionFactory. 直接引用hibernate.cfg.xml配置文件 ...
- Springmvc案例1----基于spring2.5的採用xml配置
首先是项目和所须要的包截图: 改动xml文件: <?xml version="1.0" encoding="UTF-8"?> <web-app ...
- Spring事务支持:利用继承简化配置
因为事务代理的实现类是 TransactionProxyFactoryBean . 事务代理Bean必须注入事务管理器. 大部分情况下,每个事务代理的事务属性大同小异,对于这种情况,Spring提供了 ...
- spring+hibernate的配置
第一种方式: hiberante.cfg.xml配置如下: Xml代码 <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/H ...
- spring管理hibernate的SessionFactory-多种配置方法
其实很简单 第一种方式使用hiberante.cfg.xml: hiberante.cfg.xml配置如下: <!DOCTYPE hibernate-configuration PUBLIC ...
- hibernate教程--常用配置和核心API详解
一.Hibernate的常用的配置及核心API. 1.1 Hibernate的常见配置: 1.1.1.核心配置: 核心配置有两种方式进行配置: 1)属性文件的配置: * hibernate.prop ...
- hibernate教程--常用配置和核心API
一.Hibernate的常用的配置及核心API. 1.1Hibernate的常见配置: 1.1.1.核心配置: 核心配置有两种方式进行配置: 1)属性文件的配置: * hibernate.proper ...
- Spring管理事务的若干配置形式
Spring管理事务的若干配置形式 虽说利用Spring来实现配置式事务的基本原理都是AOP,但其配置方法也多种多样,以下从互联网摘抄了一些,希望起一个总结作用(有版权问题的话请留言作者,我将立即删除 ...
- hibernate 与 spring 松散配置的问题
因为有朋友的回复,所有重做了一个SSH的例子,实现S/S/H松散耦合: 将spring配置文件applicationContext.xml改为下面的样子: xml 代码 <?xml versio ...
最新文章
- Memcached安装以及PHP的调用
- 基于TPS28225功率MOS半桥电路测试
- MarkdownPad2 免费升级pro版本
- R语言入门第三集 实验二:基本数据处理
- 动态SQL字符长度超过8000
- java中输入方式Scanner和BufferedReader
- python的copy模块是哪个模块_每周一个 Python 模块 | copy
- 安徽理工大学大学计算机科学与技术学院,安徽理工大学计算机科学与工程学院介绍...
- java informix_java informix
- IP地址(IPv4)
- 公众号微信认证(企业类型的订阅号)参考步骤
- android 串口 汉字乱码,Arduino软串口出现乱码
- 扩展卢卡斯 (板子)
- Qt中的矩阵计算库eigen
- NetSpectre:通过网络读取任意内存
- 五千年中国富豪排行榜(组图)
- uni-app,一段文字实现展开、收起全文点点点
- postgres 判断null_PostgreSQL空值null参与运算的处理方法
- ZZNU 1995: cots' times
- vuejs 数组定义字段_一个漂亮的文本字段,用于格式化VueJS制作的电话号码
热门文章
- WSL Ubuntu 20.04 LTS 升级 22.04 LTS
- arcgis之地理配准
- js用正则表达式完成邮箱验证
- 学习聚宽4:函数 下单函数 自定义函数(笔记简单,但是需要重点看)
- 【时间函数】gettimeofday
- 火车头采集器在线发布模块制作教程
- Jmeter分布式压测-windows(master控制机)多个linux(slaves负载机)监测服务器资源(cpu、内存等)
- 【转载】nuke命令行渲染方法-多线程渲染!
- python 爬虫软件第一个程序
- IMX8开发板Ubuntu20系统下外设界面功能测试-迅为i.MX8MM