RT,这几个东东已经困扰我很长一段时间了。。。

这次争取把她们理清楚了!

参考资料:

1. 数据库连接池:http://www.cnblogs.com/shipengzhi/archive/2011/06/07/2074396.html

http://pengshao.iteye.com/blog/1672717

1. 数据源与连接池

参考:http://pengjianbo1.iteye.com/blog/503326

http://www.cnblogs.com/ITtangtang/archive/2012/05/21/2511749.html

http://blog.csdn.net/zhanngle/article/details/4027245

按自己理解,数据源有时指数据库/存储数据的文件(数据源头),有时也指数据库的引用/连接数据库的工具(毕竟其中含有url,username,pwd等参数)

而连接池则是指管理数据库连接的地方。

按照目前常用的方式,数据源常作为联连接数据库的工具,而连接池则随着数据源的创建而一起配置完成。

比如常用的DataSource有c3p0,dbcp,经常通过Spring容器进行实例化,然后交由Tomcat管理。同时Tomcat也会创建数据库连接池来优化数据库的操作性能。

一图胜千言!!!

按上图所示,假设应用服务器Tomcat和数据库服务器的场景。

老方法:

1. DriverManager.getConnection()创建新的数据库联接

2. 执行SQL语句

3. 关闭数据库联接

缺点在于:1. 联接无法复用,严重影响应用程序性能;2. DriverManager得到联接需要硬编码,不灵活

DataSource(连接数据库工具)+Connection Pool(连接池)方法:

1. Tomcat实例化DataSource并按配置开辟连接池

2. DataSource.getConnection()获取已经提前创建好的数据库连接

3. 执行SQL语句

4. 关闭数据库联接,该连接回到连接池以备复用。

优点:1. 连接复用;2. 由JNDI统一管理DataSource

Application, JDBC, 数据库连接池, Session, 数据库的关系的更多相关文章

  1. JDBC 数据库连接池

    http://www.cnblogs.com/lihuiyy/archive/2012/02/14/2351768.html JDBC 数据库连接池 小结   当对数据库的访问不是很频繁时,可以在每次 ...

  2. JAVA基础知识之JDBC——JDBC数据库连接池

    JDBC数据库连接池 数据库的连接和关闭是很耗费资源的操作,前面介绍的DriverManager方式获取的数据库连接,一个Connection对象就对应了一个物理数据库连接,每次操作都要打开一个连接, ...

  3. JDBC数据库连接池

    用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长.假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大的浪费数据库的资源,并且极易造成数据库 ...

  4. Java自学-JDBC 数据库连接池

    数据库连接池 与线程池类似的,数据库也有一个数据库连接池. 不过他们的实现思路是不一样的. 本章节讲解了自定义数据库连接池类:ConnectionPool,虽然不是很完善和健壮,但是足以帮助大家理解C ...

  5. JAVA之JDBC数据库连接池总结篇

    JDBC数据库连接池 一.JDBC数据库连接池的必要性 二.数据库连接池技术 三.多种开源的数据库连接池 3.1 C3P0数据库连接池 3.2 DBCP数据库连接池 3.3 Druid(德鲁伊)数据库 ...

  6. 【Java123】JDBC数据库连接池建立

    需求场景:多SQL任务多线程并行执行 解决方案:建立JDBC数据库连接池,将线程与连接一对一绑定 https://www.cnblogs.com/panxuejun/p/5920845.html ht ...

  7. JDBC数据库连接池技术

    在JDBC中,获得连接或释放资源是非常消耗系统资源的两个过程,为了解决此类性能问题,通常采用连接池技术,来共享连接.这样我们就不需要每次都创建连接.释放连接了,这些操作都交给了连接池. 用池的概念来管 ...

  8. JDBC 数据库连接池 小结

    原文:http://www.cnblogs.com/lihuiyy/archive/2012/02/14/2351768.html 当对数据库的访问不是很频繁时,可以在每次访问数据库时建立一个连接,用 ...

  9. 银行账户管理系统(oracle数据库连接池,数据库的链接,)

    /* * 银行账户管理系统: * 属性:账户id,姓名,金额salary,利息类型: *管理员模块实现的功能: * 1.给用户开户 * 2.查询所有账户信息 * 用户模块实现的功能: * 1.显示用户 ...

随机推荐

  1. zabbix一些高级功能介绍

    根据上篇配置的环境,接下来说明在zabbix agent上执行远程命令是如何完成的. 远程命令受到一些限制: (1)在agent执行远程命令必须给zabbix用户定义sudu规则: (2)不支持act ...

  2. NodeManager起不来

    NodeManager无法启动,解除授权,重新授权! CDH需要注意的表: SELECT * FROM `ROLES` SELECT * FROM CONFIGS WHERE attr LIKE '% ...

  3. 删:[CentOS 7] 安装nginx

    下载对应当前系统版本的nginx包(package) # wget  http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-cent ...

  4. LinqToSql中使用事务(2)

    原文地址:http://www.cnblogs.com/blusehuang/archive/2007/07/16/819677.html

  5. SQL基础篇---基本概念解析

    1.数据库database:保存表和其他相关SQL结构容器(一般是一个文件或者一组文件) 2.SQL (Structared Query Language):是一种专门用来与数据库沟通的语言,是一种结 ...

  6. scp 跨机远程拷贝

    scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器. 命令格式: scp [参数] [原路径] [目标路径] ...

  7. hdu 1196 Lowest Bit

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1196 Lowest Bit Description Given an positive integer ...

  8. 使用golang+java实现基于ecb的3eds加解密

    http://www.100hack.com/2014/04/14/golang%E4%B8%AD%E7%9A%84des%E5%8A%A0%E5%AF%86ecb%E6%A8%A1%E5%BC%8F ...

  9. HTML QQ聊天代码 简单的一行代码

    简单的一行代码: <a href="tencent://message/?uin=173007740&Site=&Menu=yes">和17300774 ...

  10. Android编程: MVC模式、应用的生命周期

    学习内容:Android的应用剖析.MVC模式.应用的生命周期 ====Android的应用剖析==== 一个Android应用程序会使用如下组件: Android Activities   界面 A ...