<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:使用与配置相关推荐

  1. spring4+hibernate4配置sessionFactory错误

    配置使用spring来管理sessionFactory. 这个配置需要在applicationContext.xml中来配置 解决方案: <bean id="sessionFactor ...

  2. Spring配置SessionFactory

    Spring的核心模块之一为依赖注入,普遍使用的为Set方式注入,那么下面将借助该方式配置数据源和SessionFactory.         直接引用hibernate.cfg.xml配置文件   ...

  3. Springmvc案例1----基于spring2.5的採用xml配置

    首先是项目和所须要的包截图: 改动xml文件: <?xml version="1.0" encoding="UTF-8"?> <web-app ...

  4. Spring事务支持:利用继承简化配置

    因为事务代理的实现类是 TransactionProxyFactoryBean . 事务代理Bean必须注入事务管理器. 大部分情况下,每个事务代理的事务属性大同小异,对于这种情况,Spring提供了 ...

  5. spring+hibernate的配置

    第一种方式: hiberante.cfg.xml配置如下: Xml代码 <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/H ...

  6. spring管理hibernate的SessionFactory-多种配置方法

    其实很简单 第一种方式使用hiberante.cfg.xml: hiberante.cfg.xml配置如下: <!DOCTYPE hibernate-configuration PUBLIC   ...

  7. hibernate教程--常用配置和核心API详解

    一.Hibernate的常用的配置及核心API. 1.1 Hibernate的常见配置: 1.1.1.核心配置: 核心配置有两种方式进行配置:  1)属性文件的配置: * hibernate.prop ...

  8. hibernate教程--常用配置和核心API

    一.Hibernate的常用的配置及核心API. 1.1Hibernate的常见配置: 1.1.1.核心配置: 核心配置有两种方式进行配置: 1)属性文件的配置: * hibernate.proper ...

  9. Spring管理事务的若干配置形式

    Spring管理事务的若干配置形式 虽说利用Spring来实现配置式事务的基本原理都是AOP,但其配置方法也多种多样,以下从互联网摘抄了一些,希望起一个总结作用(有版权问题的话请留言作者,我将立即删除 ...

  10. hibernate 与 spring 松散配置的问题

    因为有朋友的回复,所有重做了一个SSH的例子,实现S/S/H松散耦合: 将spring配置文件applicationContext.xml改为下面的样子: xml 代码 <?xml versio ...

最新文章

  1. Memcached安装以及PHP的调用
  2. 基于TPS28225功率MOS半桥电路测试
  3. MarkdownPad2 免费升级pro版本
  4. R语言入门第三集 实验二:基本数据处理
  5. 动态SQL字符长度超过8000
  6. java中输入方式Scanner和BufferedReader
  7. python的copy模块是哪个模块_每周一个 Python 模块 | copy
  8. 安徽理工大学大学计算机科学与技术学院,安徽理工大学计算机科学与工程学院介绍...
  9. java informix_java informix
  10. IP地址(IPv4)
  11. 公众号微信认证(企业类型的订阅号)参考步骤
  12. android 串口 汉字乱码,Arduino软串口出现乱码
  13. 扩展卢卡斯 (板子)
  14. Qt中的矩阵计算库eigen
  15. NetSpectre:通过网络读取任意内存
  16. 五千年中国富豪排行榜(组图)
  17. uni-app,一段文字实现展开、收起全文点点点
  18. postgres 判断null_PostgreSQL空值null参与运算的处理方法
  19. ZZNU 1995: cots' times
  20. vuejs 数组定义字段_一个漂亮的文本字段,用于格式化VueJS制作的电话号码

热门文章

  1. WSL Ubuntu 20.04 LTS 升级 22.04 LTS
  2. arcgis之地理配准
  3. js用正则表达式完成邮箱验证
  4. 学习聚宽4:函数 下单函数 自定义函数(笔记简单,但是需要重点看)
  5. 【时间函数】gettimeofday
  6. 火车头采集器在线发布模块制作教程
  7. Jmeter分布式压测-windows(master控制机)多个linux(slaves负载机)监测服务器资源(cpu、内存等)
  8. 【转载】nuke命令行渲染方法-多线程渲染!
  9. python 爬虫软件第一个程序
  10. IMX8开发板Ubuntu20系统下外设界面功能测试-迅为i.MX8MM