在使用spring进行javaWeb开发的过程中,需要和数据库进行数据交换,为此要经常获取数据库连接,使用JDBC的方式获取数据库连接,使用完毕之后再释放连接,这种过程对系统资源的消耗无疑是很大的,这里简单描述三种数据库连接池的配置,使用这些连接池可以获得一个数据源。1、spring自带的JDBC连接池;2、c3p0;3、dbcp;

一、spring自带的JDBC方式

spring提供了对JDBC的支持,且提供了基于JDBC的数据源的配置,如下配置文件

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/test"></property>
<property name="username" value="root"></property>
<property name="password" value="123456"></property>
</bean>

在spring的配置文件,配置上面的bean,便得到一个JDBC的数据源。

二、c3p0

c3p0是一个开源的数据库连接池,可以很好的管理数据连接,如下配置

<bean id="dataSourceC3p0" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="com.mysql.jdbc.Driver"></property>
<property name="jdbcUrl" value="jdbc:mysql://127.0.0.1:3306/test"></property>
<property name="user" value="root"></property>
<property name="password" value="123456"></property>
</bean>

在spring的配置文件中,配置上面的bean,便得到一个c3p0的数据源;
注:要使用c3p0连接池,必须导入c3p0的jar包,在0.9.1版本之前,c3p0只有一二jar包:c3p0-0.9.1.jar,从0.9.2之后又分离出另外一个包:mchange-commons-java-0.2.11.jar,我这里使用的0.9.5.2的版本,所以我导入了两个jar包:c3p0-0.9.5.2.jar、mchange-commons-java-0.2.11.jar。具体的下载地址可以网上查询。

三、dbcp

dbcp同样是一个开源的数据连接池,如下配置,

<bean id="dataSourceDbcp" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">

        <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/test"></property>
<property name="username" value="root"></property>
<property name="password" value="123456"></property>
</bean>

在spring的配置文件中,配置上面的bean,便得到一个dbcp的数据源;
注:要使用dbcp连接池需要导入相应的jar包,这里导入的是两个jar包:commons-dbcp-1.4.jar、commons-pool-1.5.6.jar

上面的三种数据源的配置都是最基础的配置,如果需要得到性能高的数据源源,还需要其他的配置项,可以执行研究。

有不正之处欢迎指出,谢谢!

转载链接:https://www.cnblogs.com/teach/archive/2016/09/14/5870767.html

最新文章

  1. asp.net js 倒计时总秒数量 和 排序
  2. 在mac中自动保存git用户名与密码如此简单
  3. jedis操作redis全指南
  4. cometd的服务器配置
  5. STM32F0xx_GPIO配置详细过程
  6. ubuntu挂载磁盘
  7. 重构12-Break Dependencies(打破依赖)
  8. 常用的MAVEN公共私服
  9. Api项目压力测试知识荟萃
  10. 【Apache Kafka】安装指南
  11. SCVMM更换数据库,如何搞?
  12. iOS9中通过UIStackView实现类似大众点评中的效果图
  13. 各种Adapter的用法
  14. 怎样在android实现uc和墨迹天气那样的左右拖动效果
  15. “jquery于each方法和选择”学习笔记
  16. 我自己总结的C#开发命名规范整理了一份
  17. Linux下的tar压缩解压缩命令详解(转)
  18. {&quot;error&quot;:&quot;Content-Type header [application/x-www-form-urlencoded] is not supported&quot;,&quot;status&quot;:406}
  19. python:OS模块
  20. 内幕:XX二手车直卖网,狗屁直卖网,我来揭开他们套路!

热门文章

  1. 调用phone库,查询手机号码归属地(4)
  2. 关于虚拟机中linux系统时间的问题
  3. 网址URL知识
  4. mui框架页面每次加载操作
  5. detours3.0文档翻译
  6. 6 Accessing and Managing Symbols with armlink
  7. Day 9 :初识函数
  8. 从数组中任意取出2个数,判断他们的和是否为输入的数字sum,时间复杂度为0(n^2),空间复杂度0(1)
  9. USACO 2003 Fall Orange Popular Cows /// tarjan缩点 oj22833
  10. 【POJ】2236 Wireless Network