原文:http://robinsoncrusoe.iteye.com/blog/831230
Spring 配置proxool连接池
在我的工程中,文件名叫hibernate.cfg.xml,和entity放在一起
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource" destroy-method="close">
<property name="driver" value="${hibernate.driverClass}" />
或者直接写成<property name="driver"> <value>com.mysql.jdbc.Driver</value></property>
<property name="driverUrl" value="${hibernate.jbdc.url}" />
<property name="user" value="${hibernate.jbdc.user}" />
<property name="password" value="${hibernate.jdbc.password}" />
<!-- <alias>是连接池的别名,proxoolPool连接池的一种,此外经常使用的连接池还有C3P0 -->
<property name="alias" value="proxoolPool" />
<!-- proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回
收,超时的销毁 (默认30秒)-->
<property name="houseKeepingSleepTime" value="30000" />
<!-- 最少保持的空闲连接数 (默认5个)-->
<property name="prototypeCount" value="20" />
<!-- 设置连接池内生成的最大连接数/在连接池中所有数据库连接的最大数目(默认15个) -->
<property name="maximumConnectionCount" value="${hibernate.jdbc.maxConn}" />
<!-- 设置连接池内生成的最小连接数/在连接池中可用的数据库连接的最少数目(默认5个)-->
<property name="minimumConnectionCount" value="${hibernate.jdbc.minConn}" />
<!-- 在Consonl中显示sql -->
<property name="trace" value="true" />
<property name="verbose" value="true" />
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="schemaUpdate" value="${hibernate.schemaUpdate}" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.use_outer_join">true</prop>
<prop key="hibernate.jdbc.fetch_size">50</prop>
<prop key="hibernate.jdbc.use_streams_for_binary">true</prop>
<prop key="hibernate.bytecode.use_reflection_optimizer">true</prop>
<prop key="hibernate.query.substitutions">true 1,false 0,yes 'Y',no 'N'</prop>
</props>
</property>
<property name="annotatedClasses">
<list>
<value>com.mysteel.entity.xxx</value>
</list>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
</beans>
第二个bean即从
<bean:id="sessionFactory"...>到</bean>是因为使用 Spring 框架,可以使用 AnnotationSessionFactoryBean
类轻松建立一个基于注释的 Hibernate 会话工厂
<!-- SessionFactory:使用AnnotationSessionFactoryBean可以直接在Spring中配置一个SessionFactory,而不必使用Hibernate特有的hibernate.cfg.xml配置文件。 -->
Spring配C3P0连接池
applicationContext.xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jee="http://www.springframework.org/schema/jee"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.0.xsd">
<bean id="dataSource"
class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverclass">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="jdbcUrl">
<value>jdbc:mysql://192.168.3.110:3306/DBName?useUnicode=true&characterEncoding=GBK</value>
</property>
<property name="user">
<value>root</value>
</property>
<property name="password">
<value>root</value>
</property>
<!--连接池中保留的最小连接数。-->
<property name="minPoolSize">
<value>5</value>
</property>
<!--连接池中保留的最大连接数。Default: 15 -->
<property name="maxPoolSize">
<value>30</value>
</property>
<!--初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间。Default: 3 -->
<property name="initialPoolSize">
<value>10</value>
</property>
<!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->
<property name="maxIdleTime">
<value>60</value>
</property>
<!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->
<property name="acquireIncrement">
<value>5</value>
</property>
<!--JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。但由于预缓存的statements
属于单个connection而不是整个连接池。所以设置这个参数需要考虑到多方面的因素。
如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。Default: 0-->
<property name="maxStatements">
<value>0</value>
</property>
<!--每60秒检查所有连接池中的空闲连接。Default: 0 -->
<property name="idleConnectionTestPeriod">
<value>60</value>
</property>
<!--定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 -->
<property name="acquireRetryAttempts">
<value>30</value>
</property>
<!--获取连接失败将会引起所有等待连接池来获取连接的线程抛出异常。但是数据源仍有效
保留,并在下次调用getConnection()的时候继续尝试获取连接。如果设为true,那么在尝试
获取连接失败后该数据源将申明已断开并永久关闭。Default: false-->
<property name="breakAfterAcquireFailure">
<value>true</value>
</property>
<!--因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的
时候都将校验其有效性。建议使用idleConnectionTestPeriod或automaticTestTable
等方法来提升连接测试的性能。Default: false -->
<property name="testConnectionOnCheckout">
<value>false</value>
</property>
</bean>
<!-- Hibernate SessionFactory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref local="dataSource" />
</property>
<property name="mappingResources">
<list>
<value>com/xh/hibernate/vo/User.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.generate_statistics">true</prop>
<prop key="hibernate.connection.release_mode">auto</prop>
<prop key="hibernate.autoReconnect">true</prop>
</props>
</property>
</bean>
</beans>
分享到:
相关推荐
配置连接池通常涉及到以下参数: - `maximumPoolSize`:最大连接数。 - `minimumIdle`:最小空闲连接数。 - `connectionTimeout`:超时时间,超过这个时间未获取到连接将抛出异常。 - `idleTimeout`:连接空闲...
1、集成druid,使用连接池 2、自动生成工具依赖和插件 3、最终的pom.xml文件: 4、在application.yml中添加数据源、Mybatis的实体和配置文件位置。 5、自动生成代码配置文件。 6、建立数据库和表 7、生产Dao层和...
1.Configuration.xml 是 mybatis 用来建立 sessionFactory 用的,里面主要包含了数据库连接相关东西,还有 java 类所对应的别名,比如 <typeAlias alias="User" type="com.yihaomen.mybatis.model.User"/> 这个别名...
-- redis连接池 -->12 <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig"/>13 14 <!-- redis连接工厂 -->15 <bean id="connectionFactory" class="org.springframework.data.redis.connection....
6. **数据库连接与ORM框架**:SpringBoot集成了多种数据库连接池,如HikariCP,以及对象关系映射(ORM)框架如Hibernate或MyBatis,用于处理数据库操作。 7. **安全控制**:SpringBoot提供了Spring Security模块,...