博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JDBC五数据源和数据池(web基础学习笔记十一)
阅读量:7137 次
发布时间:2019-06-28

本文共 1429 字,大约阅读时间需要 4 分钟。

一、为什么使用数据源和连接池

现在开发的应用程序,基本上都是基于数据的,而且是需要频繁的连接数据库的。如果每次操作都连接数据库,然后关闭,这样做性能一定会受限。所以,我们一定要想办法复用

数据库的连接。因此针对这种情况,提出了数据源和连接池的概念。使用数据源和连接池可以达到复用数据库连接的目的。

二、数据源和连接池概念

其实,数据源和连接池是两个不同的概念。有些人会把它们弄混。

数据源是用来连接数据库,获得Connection 对象的,在Java 中使用javax.sql.DataSource接口来表示。有了数据源,我们就不需要再编写其他连接数据的代码,直接从数据源获得连接就可以了。而且,不管使用什么样的数据库,都使用一样的方式获得数据库连接对象。那么数据源的对象是如何获得的呢?一般是由容器来创建的,我们在程序中使用JNDI 来获取。通过数据源创建的连接对象可以被自动放入连接池中统一管理

连接池是用来管理Connection 对象的,连接池可以从数据源中获得连接,连接池中可以有若干个数据库连接对象,这些连接对象可以被重用。应用程序需要连接时,就向连接池申请,如果连接池中有空闲的连接,就会分配给应用程序,如果没有,可能就需要在等待队列里等待。而如果从连接池中获得了一个连接对象,等到使用完毕之后,通过调用Connection 的close()方法,就可以将连接还给连接池,这样这个连接对象就又编程空闲的了,可以等待下一次请求。而连接池中的连接对象将一直保持与数据库的连接,这样,就避免了频繁的连接和关闭。但是,这些连接对象会占用一定的内存空间。所以,我们要根据数据库的并发访问量,和服务器的硬件条件来决定连接池中的最大连接数。

三、数据源和连接池,一个是用来创建连接对象的,一个是用来管理连接对象的

 

四、在Tomcat 中配置数据源

4.1在Tomcat 中使用数据源的步骤如下:

  • (1)在Tomcat 中加入数据库驱动文件
  • (2)配置Tomcat 的conf/context.xml
属性名称 说明
name 指定Resource 的JNDI 名称
auth

指定管理Resource 的Manager(Container:由容器创建

和管理|Application:由Web 应用创建和管理)

type 指定Resource 所属的Java 类
maxActive 指定连接池中处于活动状态的数据库连接的最大数目
maxIdle 指定连接池中处于空闲状态的数据库连接的最大数目
maxWait

指定连接池中的连接处于空闲的最长时间,超过这个时

间会抛出异常,取值为-1,表示可以无限期等待

  • (3)配置应用程序的web.xml 文件(可选)(注:新版本的Tomcat 不需要如下配置)

  • (4)使用JNDI 获取连接对象
import javax.naming.Context;import javax.naming.InitialContext;import javax.sql.DataSource;//…Context ic = new InitialContext();DataSource source = (DataSource)ic.lookup("java:comp/env/jdbc/books");Connection connection = source.getConnection();

 

转载地址:http://arprl.baihongyu.com/

你可能感兴趣的文章
nginx出现499错误码的原因以及proxy_ignore_client_abort配置
查看>>
统一项目管理平台(UMPlatForm.NET) 5.2 数据库连接管理
查看>>
tcpdump的学习记录
查看>>
思科命令
查看>>
我的友情链接
查看>>
boost::function 通过boost::bind调用类成员函数
查看>>
部署android开发环境总结
查看>>
oracle查看表空间使用率的sql
查看>>
我的友情链接
查看>>
利用makefile构建c++项目的思路介绍
查看>>
ssh的反向隧道
查看>>
F5 DDoS防御小妙招:减轻DDoS***危害的六大最佳方法
查看>>
第五天:Linux计划任务
查看>>
主动拒绝arp***
查看>>
解决 MySQL manager or server PID file could not be found! 的方法
查看>>
echo
查看>>
MariaDB,MySQL中存储过程的学习笔记
查看>>
一张图诠释linux系统启动过程
查看>>
载入jQuery库的最佳方法
查看>>
系统错误提示修复Repair Filesystem
查看>>