JSDI——实现数据库连接池(JDBC改进)

一、将驱动jar包放到服务器(例如tomcat)目录下的lib包中,让服务器自动管理数据库连接

二、在项目根中的META-INF文件夹中,建立context.xml文件,其中需要配置数据源

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <Context>
 3     <Resource name="jdbc/oracle"
 4             auth="Container"
 5             type="javax.sql.DataSource"
 6
 7             username="scott"
 8             password="123"
 9             url="jdbc:oracle:thin:@localhost:1521:orcl"
10             driverClassName ="oracle.jdbc.driver.OracleDriver"
11
12             maxIdle="2"
13             maxWait="5000"
14             maxActive="4"
15     />
16  </Context>

其中:maxIdle(最大空闲连接数量,若超出则关掉一个连接);maxWait(最大等待时间,超过后报给用户不能取得连接);maxActive(最大连接用户数)

三、在数据库工具类的getConnection()方法中,利用JNDI技术提取到数据库连接

 1 //1.上下文
 2         Context context;
 3         Connection conn = null;
 4         try {
 5             context = new InitialContext();
 6             //2.根据数据源名称,找DataSource  :  数据源名称语法格式: java:comp/env/ + context.xml中配置的name值
 7             DataSource ds = (DataSource)context.lookup("java:comp/env/jdbc/oracle");
 8             //3.获取连接
 9             conn = ds.getConnection();
10             return conn;
时间: 2024-10-29 19:09:43

JSDI——实现数据库连接池(JDBC改进)的相关文章

01_数据库连接池,数据源,ResultSetMetaData,jdbc优化

 一.数据库连接池 1. 什么是连接池 传统的开发模式下,Servlet处理用户的请求,找Dao查询数据,dao会创建与数据库之间的连接,完成数据查询后会关闭数据库的链接. 这样的方式会导致用户每次请求都要向数据库建立链接而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长.假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大的浪费数据库的资源,并且极易造成数据库服务器内存溢出.宕机. 解决方案就是数据库连接池 连接池就是数据库连接对象的一个缓冲池 我们可以先创建10个数

Java -- JDBC 学习--数据库连接池

JDBC数据库连接池的必要性 在使用开发基于数据库的web程序时,传统的模式基本是按以下步骤: 在主程序(如servlet.beans)中建立数据库连接. 进行sql操作 断开数据库连接. 这种模式开发,存在的问题: 普通的JDBC数据库连接使用 DriverManager 来获取,每次向数据库建立连接的时候都要将 Connection 加载到内存中,再验证用户名和密码(得花费0.05s-1s的时间).需要数据库连接的时候,就向数据库要求一个,执行完成后再断开连接.这样的方式将会消耗大量的资源和

JAVA JDBC 数据库连接池

1.1 JDBC数据库连接池的必要性 在使用开发基于数据库的web程序时,传统的模式基本是按以下步骤: 在主程序(如servlet.beans)中建立数据库连接 进行sql操作 断开数据库连接 这种模式开发,存在的问题: 普通的JDBC数据库连接使用 DriverManager 来获取,每次向数据库建立连接的时候都要将 Connection 加载到内存中,再验证用户名和密码(得花费0.05s-1s的时间).需要数据库连接的时候,就向数据库要求一个,执行完成后再断开连接.这样的方式将会消耗大量的资

javaWeb_JDBC_数据库连接池概述以及dbcp连接池

JDBC_dbcp数据库连接池 1.数据库连接池概述 (1).传统的数据库操作 普通的JDBC数据库连接使用 DriverManager 来获取,每次向数据库建立连接的时候都要将 Connection 加载到内存中,再验证用户名和密码( 得花费0.05s-1s的时间).需要数据库连接的时候,就向数据库要求一个,执行完成后再断开连接.这样的方式将会消耗大量的资源和时间. 数据库的连接资源并没有得到很好的重复利用.若同时有几百人甚至几千人在线,频繁的进行数据库连接操作将占用很多的系统资源,严重的 甚

JDBC数据库连接池技术

在JDBC中,获得连接或释放资源是非常消耗系统资源的两个过程,为了解决此类性能问题,通常采用连接池技术,来共享连接.这样我们就不需要每次都创建连接.释放连接了,这些操作都交给了连接池. 用池的概念来管理Connection,这样可以重复使用Connection.有了连接池以后就不用自己亲自创建连接而是通过连接池来获得Connection对象.当使用完Connection之后,调用Connection的close()方法不是真的将连接关闭,而是把Connection归还给连接池.连接池就可以继续保

JDBC整合c3p0数据库连接池 解决Too many connections错误

前段时间,接手一个项目使用的是原始的jdbc作为数据库的访问,发布到服务器上在运行了一段时间之后总是会出现无法访问的情况,登录到服务器,查看tomcat日志发现总是报如下的错误. Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected establishment of connection, message from server: "Too man

三种数据库连接池的配置及使用(For JDBC)

DBCP 一.导包 Apache官网下载DBCP包,导入两个包路径如下: commons-dbcp-1.4-bin\commons-dbcp-1.4\commons-dbcp-1.4.jar:连接池的实现 commons-pool-1.5.6-bin\commons-pool-1.5.6\commons-pool-1.5.6.jar:连接池实现的依赖库 CSDN上jar包的下载地址:http://download.csdn.NET/detail/u012802702/9491642 二.代码示例

java攻城狮之路--复习JDBC(数据库连接池 : C3P0、DBCP)

复习数据库连接池 : C3P0.DBCP 1.数据库连接池技术的优点: •资源重用: 由于数据库连接得以重用,避免了频繁创建,释放连接引起的大量性能开销.在减少系统消耗的基础上,另一方面也增加了系统运行环境的平稳性. •更快的系统反应速度: 数据库连接池在初始化过程中,往往已经创建了若干数据库连接置于连接池中备用.此时连接的初始化工作均已完成.对于业务请求处理而言,直接利用现有可用连接,避免了数据库连接初始化和释放过程的时间开销,从而减少了系统的响应时间. •新的资源分配手段: 对于多应用共享同

[原创]java WEB学习笔记80:Hibernate学习之路--- hibernate配置文件:JDBC 连接属性,C3P0 数据库连接池属性等

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------