配置_连接池的通用配置
2018-05-29 本文已影响0人
七枷琴子
德鲁伊,JDBC连接池,C3P0连接池
只要换一下class就行了
properites文件内容:
# oracle jdbc properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/demo1
jdbc.user=root
jdbc.password=666
此配置文件中的xxxx.user,例如jdbc.user中的jdbc.可以更换,但是不可以省略,因为直接使用user=root的话会与系统中的保留user字段冲突,导致连接失败
<!-- 加载properties文件 -->
<context:property-placeholder location="classpath:config.properties" />
<!-- C3P0配置本体-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driver}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.user}" />
<property name="password" value="${jdbc.password}" />
<!--以下配置按需修改 -->
<!--初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间。Default: 3 -->
<property name="initialPoolSize" value="5" />
<!--连接池中保留的最小连接数。 -->
<property name="minPoolSize" value="1" />
<!--连接池中保留的最大连接数。Default: 15 -->
<property name="maxPoolSize" value="100" />
<!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->
<property name="maxIdleTime" value="300" />
<!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->
<property name="acquireIncrement" value="5" />
<!--每60秒检查所有连接池中的空闲连接。Default: 0 -->
<property name="idleConnectionTestPeriod" value="60" />
</bean>
oracle的链接不会自动关闭,mysql的链接到8小时会自动关闭,所以有两个注意点:
- 1.项目使用完后记得关闭/归还链接,否则容易造成链接资源耗尽而无法连接上数据库
- 2.链接时间过长控制台会报出延时错误.建议设置
<property name="maxIdleTime" value="300" />
这条属性,数值可以按需调整
2.不同数据库的方言问题
mysql:
<!-- 以阿里云mysql数据库为例 -->
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="generateDdl" value="true" />
<property name="database" value="MYSQL" />
<property name="databasePlatform" value="org.hibernate.dialect.MySQLDialect" />
<property name="showSql" value="true" />
</bean>
</property>
Oracle
<!-- 以本地oracle_xe11版为例配置 -->
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="generateDdl" value="true" />
<property name="database" value="ORACLE" />
<property name="databasePlatform" value="org.hibernate.dialect.Oracle10gDialect" />
<property name="showSql" value="true" />
</bean>
</property>