spring 及 hibernate 的数据库连接池管理
来源:互联网 发布:数据挖掘的技术 编辑:程序博客网 时间:2024/05/16 15:40
最近一直在分析SSH框架的数据库连接池配置,见不同的项目有不同的数据库连接池配置,有的是在sessionFactory中配置连接池大小等参数,有的是在datasource中配置,问题来了,datasource作为一个数据源,所有连接均从datasource中获取,所以数据库连接池配置这里没有疑问。另一种情况,如果是配置在sessionFactory中是不是意味着这个池子由hibernate来管理(绑定sesssion,处理缓存等)?sessionFactory只用从dataSource中拿连接,也就是说datasource只负责提供连接不提供池子呢。
第一种情况配置:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"><property name="driverClassName"> <value>com.mysql.jdbc.Driver</value></property><property name="url"> <value>jdbc:mysql://localhost:3306/dbname</value></property><property name="username"> <value>root</value></property><property name="password"> <value>******</value></property><property name="maxActive"> <value>100</value></property><property name="maxWait"> <value>1000</value></property><property name="maxIdle"> <value>30</value></property><property name="defaultAutoCommit"> <value>true</value> </property><property name="removeAbandoned"> //自动回收连接池,避免连接池泄露 <value>true</value></property><property name="removeAbandonedTimeout"> <value>60</value></property></bean>
第二种配置:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref local="dataSource" /> </property> <property name="mappingLocations"> <list> <value>/WEB-INF/classes/fi/**/*.hbm.xml</value> </list> </property> <property name="mappingJarLocations"> <list> <value>/WEB-INF/lib/fbi.jar</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.dialect"> <!-- org.hibernate.dialect.DmDialect --> org.hibernate.dialect.MySQLInnoDBDialect </prop> <!-- <prop key="connection.pool_size">15</prop> --> <!-- <prop key="hibernate.generate_statistics">true</prop> --> <!-- <prop key="hibernate.jdbc.fetch_size">50</prop> --> <prop key="hibernate.jdbc.batch_size">25</prop> <prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop> </props> </property> <property name="eventListeners"> <map> <entry key="merge"> <bean class="org.springframework.orm.hibernate3.support.IdTransferringMergeEventListener" /> </entry> </map> </property> </bean>
其实第二个配置有点误导的意思,真正的datasource是用来建立数据库连接池的,sessionfactory是从datasource中取的连接的,当然sessionfactory可以对datasource重新进行初始化配置(池子大小等属性)
0 0
- spring 及 hibernate 的数据库连接池管理
- Spring + Hibernate是如何管理数据库连接的
- Spring + Hibernate是如何管理数据库连接的
- spring管理hibernate数据库连接(1)
- Hibernate的数据库连接池
- Spring+Hibernate用 c3p0配置数据库连接池
- C3P0数据库连接池配置【配合spring+hibernate】
- spring 管理hibernate连接池的配置
- Spring,hibernate数据库连接配置
- Hibernate数据库连接及方言
- hibernate的数据库连接池技术
- 数据库连接池的管理思想
- LOG4J使用Hibernate管理数据库连接
- Spring\Hibernate\Tomcat配置数据库连接
- Spring + Hibernate 整合时数据库连接数过多问题的解决办法
- hibernate和spring整合时出现的数据库连接问题
- 自己搭建struts2+spring+hibernate+c3p0数据库连接池过程
- 使用spring管理数据源,数据库连接数莫名其妙的增加
- Leetcode_binary-tree-postorder-traversal
- 浅谈2014年SEO的发展趋势
- EXT 4gird 隐藏列
- 推荐系统实践 pdf
- __gnu_cxx::__concurrence_broadcast_error错误解决方法
- spring 及 hibernate 的数据库连接池管理
- 为什么HierachyViewer无法连接真机调试
- php的保护:禁止直接访问 但网站可正常运行
- Sitemap工具解析
- pycharm 配置pyqt
- SQL Server 日志文件清理
- Nexus启动失败The nexus-webapp service was launched, but failed to start. .
- Java正则替换汉字中文字符串
- 转载自 X-Live Back Yard Garden的Ubuntu 11.04 安装 VMware Tools