zoukankan      html  css  js  c++  java
  • spring数据源、数据库连接池

    什么是数据源、数据库连接池?

    DataSource通常被称为数据源,它包含连接池和连接池管理两个部分,习惯上也经常把DataSource称为连接池

    数据库连接池的基本思想:为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。

    我们可以通过设定连接池最大连接数来防止系统无尽的与数据库连接。更为重要的是我们可以通过连接池的管理机制监视数据库的连接的数量、使用情况,为系统开发、测试及性能调整提供依据。

    数据源的来源?(重点)

    Web应用服务器和spring容器

    在以往的应用中,数据源一般是Web应用服务器提供的(如tomcat)通过JNDI获取,

    现在也可以直接在Spring容器中配置数据源,此外,你还可以通过代码的方式创建一个数据源,以便进行无依赖的单元测试。

    ------------------------------------------------------ 

    常用连接池

    C3P0

    一个开放源代码的JDBC连接池它在lib目录中与Hibernate一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSources 对象,比较耗费资源,效率较低,不赘述。

    DBCP

    JDBC连接池,在实践中存在BUG,在某些种情会产生很多空连接不能释放,Hibernate3.0已经放弃了对其的支持,不赘述。

    Proxool

    一个Java SQL Driver驱动程序,提供了对你选择的其它类型的驱动程序的连接池封装。可以非常简单的移植到现存的代码中。完全可配置。快速,成熟,健壮。

    可以透明地为你现存的JDBC驱动程序增加连接池功能,负面评价较少,使用的人不多,而且它还提供即时监控连接池状态的功能,便于发现连接泄漏的情况。   

    备注:

    Spring 推荐使用dbcp
    Hibernate 推荐使用c3p0和proxool

    Druid

    java最好的数据连接池,可见:https://www.cnblogs.com/niejunlei/p/5977895.html

    ------------------------------------------------------ 

    数据源如何识别驱动?

    多半能根据url来寻找正确的驱动,实在不行可通过driverClassName来设置

  • 相关阅读:
    linux 查看僵尸进程
    apache 修改最大连接数
    ng压缩后,形参被简化问题解决:
    $rootScope 与 $scope 区别:$rootScope对象是“单例的”——一个模块中只有一个$rootScope;
    vue+webpack在“双十一”导购产品的技术实践
    过滤指令:number currency lowercase(转为小写)/uppercase(转为大写)
    ng-show ng-disabled ng-show ng-hide 值的布尔值改变时,状态发生变化
    二,数据双向绑定
    一、angular:module-Controller-Model-View (模块-控制器-模型-视图);异步请求$http
    5、面向对象
  • 原文地址:https://www.cnblogs.com/yanze/p/10369012.html
Copyright © 2011-2022 走看看