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来设置

  • 相关阅读:
    Logstash实践
    GitLab-CI部署及踩坑总结
    WebSocket ,Socket ,Http差异
    加快Gradle的构建过程
    关于Android 主题的那些事
    inflate()引发NullPointerException
    Android Error:Could not find lottie.jar
    GreenDao使用解析
    关于ActionBar 左侧添加完返回后 点击无效的问题
    Android 如何更改一个 imageview的颜色
  • 原文地址:https://www.cnblogs.com/yanze/p/10369012.html
Copyright © 2011-2022 走看看