以前开发配置数据库的时候都是使用DriverManagerDataSource
配置文件
<beans>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<!-- driver for MySQL-->
<property name="driverClassName"><value>org.gjt.mm.mysql.Driver</value></property>
<property name="url"><value>jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF8</value></property>
<property name="username"><value>test</value></property>
<property name="password"><value>test</value></property>
</beans>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<!-- driver for MySQL-->
<property name="driverClassName"><value>org.gjt.mm.mysql.Driver</value></property>
<property name="url"><value>jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF8</value></property>
<property name="username"><value>test</value></property>
<property name="password"><value>test</value></property>
</beans>
但是有一次遇到了个错误:
错误提示
2007-3-18 1:08:26 org.apache.tomcat.util.threads.ThreadPool logFull
严重: All threads (150) are currently busy, waiting. Increase maxThreads (150) or check the servlet status
严重: All threads (150) are currently busy, waiting. Increase maxThreads (150) or check the servlet status
把我给郁闷坏了,明明就我一个人在上线,哪来的问题啊。
后来查了一下相关内容并且Google了一下才知道DriverManagerDataSource建立连接是只要有连接就新建一个connection,根本没有连接池的作用。
于是现在改用:
<beans> <bean id="DataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName"> <value>oracle.jdbc.driver.OracleDriver</value> </property> <property name="url"> <value>jdbc:oracle:thin:@192.168.0.1:1521:zytest</value> </property> <property name="username"> <value>test</value> </property> <property name="password"> <value>test</value> </property> </bean> </beans>
就没有遇到过这样的问题,原因很简单BasicDateSource带有数据库连接池的!