CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  框架、开源

请教DBCP怎样配置数据库连接池?

楼主shendl(良少)2006-03-04 14:29:39 在 Java / 框架、开源 提问

请教DBCP怎样配置数据库连接池?  
          我本来的项目,是使用DriverManager直接建立和关闭数据库连接的。现在为了提高数据库访问性能,我想改为使用连接池。  
          可以使用JNDI上的数据源。但是,发布JNDI是一件比较麻烦的事情,各个服务器都不一样。而且,一段时间不用JNDI,我也忘得差不多了。  
          我使用的服务器是Tomcat,Tomcat自己是使用DBCP配置连接池的。为了方便起见,我想自己配置DBCP,俄如不是使用服务器的JNDI服务。这样的话,移植到任何服务器上都不用更改。  
          一个项目是Spring+Hibernate的,原来,我使用org.springframework.jdbc.datasource.DriverManagerDataSource这个SPring的简单数据源,它是不使用数据连接池的。实际使用中,我发觉数据库访问的速度有些慢。所以,我想使用DBCP作为数据源。  
        我改成这样:  
  <bean   id="dataSource"  
  class="org.apache.commons.dbcp.BasicDataSource"   destroy-method="close">  
  <property   name="driverClassName">  
  <value>${jdbc.driverClassName}</value>  
  </property>  
  <property   name="url">  
  <value>${jdbc.url}</value>  
  </property>  
  <property   name="username">  
  <value>${jdbc.username}</value>  
  </property>  
  <property   name="password">  
  <value>${jdbc.password}</value>  
  </property>  
  </bean>  
        虽然系统能够启动,但是每次访问数据库时,都会抱错!  
   
        另一个项目是Struts+JDBC的。是直接使用DriverManager建立连接的。我也想改成DBCP,但是每次访问数据库都抱错。   因为得到的数据库连接总为空。  
           
          我不知道这样配置有什么不对。     希望各位高手能够帮忙。  
   
          服务器提供的JNDI连接池服务,如果是Tomcat提供的DBCP连接池实现的话,我看并没有太大的帮助。我们完全可以直接使用DBCP连接池。   自己实现数据源的单例模式。     这样的话,也省去了部署JNDI和获取JNDI数据源的麻烦!  
   
              请指教!     如果分不够,兄弟我可以再加!   反正我分多的是,决不食言! 问题点数:50、回复次数:5Top

1 楼shendl(良少)回复于 2006-03-04 14:46:57 得分 0

Spring那个项目中的出错信息是这样的:  
        Error   creating   bean   with   name   'sessionFactory'   defined   in   ServletContext   resource   [/WEB-INF/spring/applicationContext.xml]:   Initialization   of   bean   failed  
   
        在Struts+JDBC的项目中,我是直接用编程的方式创建数据源对象的,还是不行。  
    ds=new   BasicDataSource();  
                ds.setDriverClassName("org.gjt.mm.mysql.Driver");  
                ds.setUrl("jdbc:mysql://localhost:3306/wjmw?useUnicode=true&amp;characterEncoding=GBK");  
                ds.setUsername("root");  
                ds.setPassword("");  
              ds.setMaxIdle(2);  
              ds.setMaxActive(4);  
              ds.setMaxWait(1000);Top

2 楼Saro(这也不是江水,这是二十年流不尽的英雄血。)回复于 2006-03-04 15:48:04 得分 50

用编程的方式创建BasicDataSource都不行的话,那就和程序,配置都没什么关系了。  
  换成最新的mysql驱动3.1.11和dbcp最新版试试,或者换台机器重装mysql。检查一下是否是防火墙的缘故。Top

3 楼shendl(良少)回复于 2006-03-05 00:22:42 得分 0

BasicDataSource在SPring+Hibernate+Oracle9i和Struts+JDBC+MySQL中都出现了问题。   MySQL中,报的是JDBC驱动不支持选定的事务隔离级别。  
          Oracle是SessionFactory未能正确的初始化。  
   
            MySQL,好像是因为MySQL不支持事务的缘故。  
   
          至于SPring之中,就搞不清楚了!   我紧紧修改了类名,增加了一个destroy方法而已。  
   
          现在,我自己写了一个DataSource,可以解决以上问题,但是很奇怪,为什么BasicDataSource会不行呢?Top

4 楼shendl(良少)回复于 2006-03-05 01:00:39 得分 0

靠,我自己写的DataSOurce,现在再测,又出现了错误:  
  java.sql.SQLException:   Communication   link   failure:   Bad   handshake  
  at   com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:659)  
  at   com.mysql.jdbc.Connection.createNewIO(Connection.java:1562)  
  at   com.mysql.jdbc.Connection.<init>(Connection.java:491)  
  at   com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:346)  
  at   java.sql.DriverManager.getConnection(DriverManager.java:512)  
          这是怎么回事?     刚刚还是正确的呢!Top

5 楼shendl(良少)回复于 2006-03-05 11:18:45 得分 0

上面出错,是因为引入的包中,引入了一些解压的东西。去掉之后,就又恢复正常了!Top

相关问题

  • jsp连接MySQL数据库是数据库配置?
  • 客户端数据库连接配置
  • 数据库连接的配置文件~
  • 100■■■▲配置Tomcat数据库连接池▲■■■
  • tomcat配置数据库连接池
  • 数据库连接配置问题!??
  • 数据库连接配置问题
  • 使用jsp+mysql数据库,或jsp+mSsql数据库,怎么配置连接??
  • 用jdbc连接数据库是如何配置odbc
  • 郁闷!!tomcat4.0.6下怎样配置数据库连接池???

关键词

  • 数据库
  • 连接
  • jdbc
  • 数据
  • 服务器
  • ds
  • 项目
  • mysql
  • spring
  • struts

得分解答快速导航

  • 帖主:shendl
  • Saro

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo