`
sjuhui
  • 浏览: 46727 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Hibernate连接池的配置(hibernate和hibernate+spring)

阅读更多

1. Hibernate 默认连接池

<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration ..."> 
<hibernate-configuration> 
<session-factory > 
<!—JDBC 驱动程序 --> 
<property name="connection.driver_class">com.mysql.jdbc.Driver</property> 
<!-- 连接数据库的 URL--> 
<property name="connection.url">jdbc:mysql://localhost:3306/schoolproject </property> 
<!-- 连接的登录名 --> 
<property name="connection.username">root</property> 
<!— 登录密码 --> 
<property name="connection.password"></property> 
<!-- 指定连接的语言 --> 
<property name="dialect">org.hibernate.dialect.MySQLDialect</property> <!-- 映射 Student 这个资源 --> 
<mapping resource="com/wqbi/model/pojo/student.hbm.xml" /> </session-factory> 
</hibernate-configuration> 

2 .C3P0 连接配置
//spring+hibernate
1.下载c3p0
2.导入包
3.配置c3p0 数据库连接池
4在Spring中配置直接把<datasource>改为c3p0的配置就可以了
如下:

<bean id="DataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="oracle.jdbc.driver.OracleDriver"></property> 
<property name="jdbcUrl" value="jdbc:oracle:thin:@192.168.1.3:1521:HZORA6"></property> 
<property name="user" value="hz1001"></property> 
<property name="password" value="123"></property>
<property name="maxPoolSize" value="40"></property> 
<property name="minPoolSize" value="1"></property> 
<property name="initialPoolSize" value="1"></property> 
<property name="maxIdleTime" value="20"></property> 
</bean>

 以下的<SessionFactory>配置,只需要引用<DataSource>bean就可以了
<bean id="SessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
基本配置参数:
initialPoolSize:
Number of Connections a pool will try to acquire upon startup. Should be between minPoolSize and maxPoolSize
连接池初始化时获取的链接数,介于minPoolSize和maxPoolSize之间
minPoolSize:
Minimum number of Connections a pool will maintain at any given time.
最小链接数
maxPoolSize:
Maximum number of Connections a pool will maintain at any given time.
最大连接数
acquireIncrement:
Determines how many connections at a time c3p0 will try to acquire when the pool is exhausted.
在当前连接数耗尽的时候,一次获取的新的连接数
maxIdleTime:
Seconds a Connection can remain pooled but unused before being discarded. Zero means idle connections never expire.
最大空闲的时间,单位是秒,无用的链接再过时后会被回收

3.proxool 连接池
//hibernate
1先写 proxool 的配置文件,文件名:proxool.xml(一般放在与 hibernate.cfg.xml 文件在同一个目录中)
本例配置的是 MYSQL 数据库,数据库的名字为 schoolproject

<?xml version="1.0" encoding="UTF-8"?> 
<!-- the proxool configuration can be embedded within your own application's. Anything outside the "proxool" tag is ignored. --> <something-else-entirely> 
<proxool> 
<!-- 连接池的别名 --> 
<alias>DBPool</alias> 
<!--proxool 只能管理由自己产生的连接 --> 
<driver-url>jdbc:mysql://localhost:3306/schoolproject?useUnicode=true&characterEncoding=UTF8 </driver-url> 
<!—JDBC 驱动程序 --> 
<driver-class>com.mysql.jdbc.Driver</driver-class> 
<driver-properties> 
<property name="user" value="root"/> 
<property name="password" value=""/> 
</driver-properties> 
<!-- proxool 自动侦察各个连接状态的时间间隔 ( 毫秒 ), 侦察到空闲的连接就马上回收 , 超时的销毁 --> 
<house-keeping-sleep-time>90000</house-keeping-sleep-time> <!-- 指因未有空闲连接可以分配而在队列中等候的最大请求数 , 超过这个请求数的用户连接就不会被接受 --> 
<maximum-new-connections>20</maximum-new-connections> <!-- 最少保持的空闲连接数 --> 
<prototype-count>5</prototype-count> 
<!-- 允许最大连接数 , 超过了这个连接,再有请求时,就排在队列中等候,最大的 等待请求数由 maximum-new-connections 决定 --> 
<maximum-connection-count>100</maximum-connection-count>
<!-- 最小连接数 --> 
<minimum-connection-count>10</minimum-connection-count> </proxool> 
</something-else-entirely> 

 //spring+hibernate

<bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource">
 <property name="driver"><value>${driver}</value></property> 
<property name="jdbcUrl"><value>${read.jdbcUrl}</value></property>
<property name="user"><value>${read.user}</value></property>
<property name="password"><value>${read.password}</value></property>
<property name="minPoolSize"><value>10</value></property>
<property name="maxPoolSize"><value>30</value></property>
<property name="initialPoolSize"><value>10</value></property>
<property name="maxIdleTime"><value>28000</value></property>
<property name="idleConnectionTestPeriod"><value>28000</value></property>
</bean>

4 . JNDI 连接池
数据源已经由应用服务配置好 ( 如 Web 服务器 ) , Hibernate 需要做的只是通过 JNDI 名查找到此数据源。应用服务器将连接池对外显示为 JNDI 绑定数据源,它是 javax.jdbc.Datasource 类的一个实例。只要配置一个 Hibernate 文件,如:
hibernate.connection.datasource=java:/comp/env/jdbc/schoolproject //JNDI 名
hibernate.transaction.factory_class = org.hibernate.transaction.JTATransactionFactory
hibernate.transaction.manager_loopup_class =
org.hibernate.transaction.JBossTransactionManagerLookup
hibernate.dialect=org.hibernate.dialect.MySQLDialect

 

分享到:
评论

相关推荐

    Spring+Hibernate+Proxool连接池

    标题 "Spring+Hibernate+Proxool连接池" 涉及到的是在Java Web开发中,如何使用Spring框架集成Hibernate ORM框架,并结合Proxool作为数据库连接池的技术实践。这通常是为了提高应用性能,有效管理和复用数据库连接,...

    SpringMVC+Spring+Hibernate+Oracle 实现图书管理(CRUD)

    在这个案例中,"SpringMVC+Spring+Hibernate+Oracle 实现图书管理(CRUD)"是一个使用了四大主流Java技术栈的项目,分别是SpringMVC作为前端控制器、Spring作为应用层框架、Hibernate作为持久层框架,以及Oracle作为...

    spring3+hibernate4+springmvc+druid连接池

    【标题】"spring3+hibernate4+springmvc+druid连接池"是一个常见的Java Web开发中的技术栈整合,其中包含了Spring框架的三个主要组件:Spring Core、Spring MVC和Hibernate ORM,以及Druid数据库连接池。这个组合常...

    spring+springMVC+hibernate

    这些配置文件定义了组件间的依赖关系、数据源设置、视图解析器、数据库连接池等关键配置。 【知识点八】测试 在实际开发中,单元测试和集成测试是必不可少的环节。SSH框架提供了测试支持,如Spring的JUnit测试框架...

    SSH - SpringMVC4 + Spring4 + Hibernate4 + c3p0 + Mysql.zip

    在本项目"SSH - SpringMVC4 + Spring4 + Hibernate4 + c3p0 + Mysql.zip"中,开发者使用了SpringMVC4作为表现层,Spring4作为控制层和服务层,Hibernate4作为持久层,c3p0作为数据库连接池,以及MySQL作为数据库。...

    Spring+Struts2+hibernate+Redis整合

    - 配置Redis连接:在Spring配置文件中,配置Redis的连接池信息,包括主机地址、端口、密码等。 - 创建Redis模板:使用Spring提供的`JedisConnectionFactory`和`RedisTemplate`,定制适合应用的Redis操作模板。 - ...

    hibernate+spring配置文件

    可以使用Apache的Commons DBCP或C3P0等连接池。 - **HibernateTemplate**或`HibernateSession`:Spring提供这两个bean来简化Hibernate操作,它们会在事务管理下执行HQL(Hibernate Query Language)或SQL。 2. **...

    springMVC+hibernate+spring+shiro整合例子

    2. **配置Hibernate**:配置SessionFactory,实体类的注解,数据库连接池,以及Hibernate的XML配置文件或使用Java配置。 3. **配置Spring**:创建IoC容器,配置数据源,配置Hibernate SessionFactory,使用AOP进行...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    12.4.2 配置数据库连接池 12.4.3 使用JNDI 12.5 使用Hibernate的工具快速生成映射文件和POJO 12.5.1 使用MiddleGen根据数据库产生映射文件 12.5.2 使用hbm2java根据映射文件产生POJO 12.6 整合Struts、Spring和...

    SpringMVC+Hibernate+Spring

    1. **配置环境**:引入相应的jar包,设置数据库连接参数,配置c3p0连接池。 2. **配置Spring**:编写Spring的配置文件,声明并配置DataSource、SessionFactory、HibernateTemplate等bean。 3. **配置SpringMVC**:...

    struts2+HIbernate+Spring整合所需jar包

    Struts2、Hibernate和Spring是Java开发中三大主流框架,它们各自在Web应用程序的不同层面上发挥作用,而将它们整合在一起,通常称为SSH(Struts2、Spring、Hibernate)或S2SH,可以构建出功能强大、结构清晰的企业级...

    hibernate+spring+struts2

    (2)运用struts1.2+hibernate+spring 框架,数据库连接池,事务管理; (3)Struts 应用国际化,Struts 标签库与Tiles框架, JSTL标签库,Spring IOC; (4)采用优化性能技术,采用oscache缓存,freemarker静态页面生成; (5)...

    Spring+Hibernate实现用户登录

    以上就是"Spring+Hibernate实现用户登录"项目所涉及的主要技术点和流程。理解并掌握这些知识点对于开发基于Java的Web应用至关重要,特别是在涉及到用户认证和授权的情景下。通过实际操作和学习这个项目,开发者可以...

    连接池与Spring,Hibernate结合

    "连接池与Spring、Hibernate结合"这个主题涉及到的是如何有效地管理和复用数据库连接,以提高应用程序的效率和响应速度。这里我们将深入探讨连接池的概念,Spring框架中的数据源配置,以及Hibernate的集成,以及它们...

    Spring + JPA + Hibernate配置

    同时,还需要配置Hibernate的相关属性,比如连接池、方言等。此外,可能还需要编写DAO接口和实现类,使用JPA或Hibernate的API进行数据操作。 通过这篇博文链接(虽然此处未给出实际链接),开发者可以学习到如何将...

Global site tag (gtag.js) - Google Analytics