看到一篇关于jdbc的文章,有段是这样写的:基于DriverManager.getConnection()的连结池只不过是预先生成这样的物理连结放在一个
pool中,然后编号等你调用,它省略的是生成这样的连结的时间.而javax.sql的实现采用了在用户连结和物理连结中间加一个缓冲的中间层,它虽然也只生
成30个物理连结,但用户本身不能访问它,DataSource返回给用户的是一个JAVA抽象对象,客户程序把
连结请求放回缓冲中由DataSource统一调度物理连结来处理,这样可以最大程序利用宝贵的物理连结也就是说,在同样多的物理连结下,
DataSource可以给我们更多(是多得多的)的调用机会,
各位都是用DataSource来配置连接池的吗?

解决方案 »

  1.   

    一般使用DataSource,
    对基于DriverManager.getConnection()的连结池只不过是预先生成这样的物理连结放在一个
    pool中,然后编号等你调用,它省略的是生成这样的连结的时间.
    持怀疑态度
      

  2.   

    同意harston(顽石) 的观点,感觉直接getConnection是每次生成的
      

  3.   

    一般来讲还是基于DataSource的连接比较常用,连接池自己常用的是DBCP和C3P0,不过C3P0要慢一些.
      

  4.   

    我用DriverManager.getConnection()连接的  目前为止并未发现什么缺点
      

  5.   

    我在初学java的时候 接触jdbc的时候直接用没用连接池 ,后来写了个自己觉的不错(其实很烂)的连接池,在后来去公司,工作的时候读了大量高质量的源码后,写了一个真正可以用的连接池现在 在用proxool 这个不错很好用,建议楼住自己尝试着自己写个,等熟悉java后用第三方的
      

  6.   

    数据源 JNDI的方式与DriverManager.getConnection()是一样的;都是牺牲初始化效率换取运行期间的效率;就像一排座位,人走了就可以坐一样; 总比自己去搬一个凳子然后再坐走了还得送回去 好吧 呵呵记住连接池的连接使用完毕后要及时close 否则会出现游标错误(Oracle)
      

  7.   

    proxool 不错的,直接getConnection是直接创建连接。
      

  8.   

    datasource 由驱动来实现的。
      

  9.   

    我用DriverManager.getConnection()连接的,也没出现啥问题啊!
      

  10.   

    两大方式:
    A:直接连接   它是直接在客户端的代码中打开并维护的;
    B:池连接DBCP 它是被J2EE服务器打开和维护的;
                          当然后者:提供共享的连接,避免了重复建立,管理功能;
      

  11.   

    我所理解的也是这样的
    --------------------------------
     java_augur(听着音乐 ☆☆☆☆☆☆) ( ) 信誉:115    Blog  2006-9-20 0:27:55  得分: 0  
     
     
       
    连接池也不神秘,自己完全可以实现,也就是说一次创建几个连接;
    每次关闭连接,并不是物理关闭,而是软关闭;
    这样节省了连接建立的时间。如果超出了预先创建的理解数目,可以有多种方案:
    要么让用户等,或者重新在建立连接;
    一般服务器的实现都是让用户去等,以避免连接数目过多。连接池的最大好处是减少服务器响应时间。  
     
      

  12.   

    连接池的文章
    http://www.cn-java.com/target/news.php?news_id=1902
      

  13.   

    应用服务器会帮你解决所有的疑问的,比如weblogic,JNDI连接到它的连接池上即可
      

  14.   

    一般在tomcat下配置一个数据源,给这个数据源起个名字,这个名字是用jndi所要获取的
    名字,这样才能实现数据源连接,而使用getconnection()是一中物理连接,保持一对一
    的连接,只用用这个连接的人释放了他,别人才能用。程序开发中建议使用数据源,这样可
    以减少数据库的压力
      

  15.   

    一般在tomcat下配置一个数据源,给这个数据源起个名字,这个名字是用jndi所要获取的
    名字,这样才能实现数据源连接,而使用getconnection()是一中物理连接,保持一对一
    的连接,只用用这个连接的人释放了他,别人才能用。程序开发中建议使用数据源,这样可
    以减少数据库的压力
      

  16.   

    一般在tomcat下配置一个数据源,给这个数据源起个名字,这个名字是用jndi所要获取的
    名字,这样才能实现数据源连接,而使用getconnection()是一中物理连接,保持一对一
    的连接,只用用这个连接的人释放了他,别人才能用。程序开发中建议使用数据源,这样可
    以减少数据库的压力
      

  17.   

    DriverManager.getConnection()的方式不推荐使用,除非你是在写单机版程序,原因如下:
    1.DriverManager.getConnection()是每一次都是重新获取链接,而DataSource方式是用到了中间层;
    2.DriverManager.getConnection()不支持事务处理,不满足企业级的需要;
    3.DriverManager.getConnection()没有对数据源进行抽象,而DataSource是在配置文件写数据库的class、url、user/password,减小了程序内部的依赖,耦合高;
    4.DriverManager.getConnection()也不是一无是处,可以在开发的时候用,正式版本发布后再改成DataSource的方式。
      

  18.   

    cowboy1114我觉得说的比较简易懂。
      

  19.   

    我常用 数据源
    JNDI 也可以
      

  20.   

    当然是用数据源啦我用DriverManager.getConnection()1毫秒调用一次,1个多小时后就error了刚做的一个系统,要求至少挺24小时换数据源就好了
      

  21.   

    java,asp,.net,技术讨论群14401742,现在缺管理员,欢迎高手加入。
      

  22.   

    去这里看看吧:
    http://www.javadingle.com
      

  23.   

    可以把Connection 和Statement封装下吧  在方法中调用吧~~~~