今天上班遇到了几个人问我数据库连接池在web应用中的使用问题。所以总结一下发表一篇关于数据库连接池在web开发中的使用。希望对一些人有帮助。
OK,言归正传:
关于数据库连接池的原理在此就不作解释(本篇文章是基于已经了解数据库连接池原理的朋友参考)。
在这我们就讲一下基于tomcat的连接池使用。
基于tomcat的连接池使用有两种方式:
第一种:在tomcat的安装目录下的conf文件夹下会有个context.xml文件,基于这种方式使用的连接池,在当前tomcat下web应用都可以用到该连接池资源。
第二种:就是为每一个web应用单独配置连接池。这时候我们要在web应用的META——INF文件夹下配置context.xml文件。把jdbc的驱动包方法哦tomcat的lib下。
context.xml文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/mysql"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/shop?characterEncoding=utf-8"
username="root"
password="root"
maxActive="40"
maxIdle="2"
minIdle="1"
maxWait="50000"
/>
</Context>
上面是对连接池的配置。
下面就应该是对连接池的使用了,ok。对连接池的应用涉及到另外一种新的技术JNDI(java的命名和目录接口),来获得我们的连接池资源。
怎么获得资源的也就是我们连接池的连接呢?OK,下面我们写个web应用的监听器,让服务启动的时候去加载资源。
类DBCPListener:
package com.wuxw920.dbcp.Listener;
import java.sql.SQLException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.sql.DataSource;
import com.wuxw920.dbcp.dbutil.DataSourceProvider;
/**
* web应用的监听器 用来初始化连接池
*
* @author wuxw920
*
*/
public class DBCPListener implements ServletContextListener {
public void contextDestroyed(ServletContextEvent sce) {
// TODO Auto-generated method stub
System.out.println("WEB应用销毁……");
DataSource ds = DataSourceProvider.getInstance().getDataSource();
try {
ds.getConnection().close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void contextInitialized(ServletContextEvent sce) {
// TODO Auto-generated method stub
System.out.println("WEB应用初始化……");
try {
Context context = new InitialContext();
DataSource ds = (DataSource) context
.lookup("java:/comp/env/jdbc/mysql");
DataSourceProvider.getInstance().initDataSource(ds);
} catch (NamingException e) {
e.printStackTrace();
}
}
}
我们再写使用的时候如何获得连接,再写一个类DataSourceProvider
package com.wuxw920.dbcp.dbutil;
import javax.sql.DataSource;
/**
* 用来初始化连接
*
* @author wuxw920
*
*/
public class DataSourceProvider {
private DataSource ds;
private static DataSourceProvider instance;
private DataSourceProvider() {
}
public static DataSourceProvider getInstance() {
if (instance == null) {
instance = new DataSourceProvider();
}
return instance;
}
public void initDataSource(DataSource ds) {
this.ds = ds;
}
public DataSource getDataSource() {
return ds;
}
}
到此为止启动tomcat应用服务器。我们就获得了连接。测试通过。呵呵……
数据库连接池的基本使用就到这了,其实还有很多方法去实现它。这个例子是利用tomcat本身再带的DBCP连接池。我们当然也可以在tomcat中集成第三方提供的连接池产品。同样通过JNDI取得资源。一般情况下还是比较推荐使用第三方的数据库连接池产品的。
下面我们讲下tomcat集成第三方连接池的配置方案:
1.将数据库的jdbc驱动程序以及第三方的数据库连接池程序包放置到web项目下的web-inf\lib目录下
2.在应用的meta_inf下创建一个名为context.xml的文件,具体内容请参考附件
3.使用jndi api来获取由tomcat初始化的连接池对象
分享到:
相关推荐
数据库连接池在Web开发中扮演着至关重要的角色,它是一种管理数据库连接的机制,通过复用已存在的数据库连接,而不是每次请求时都创建新的连接,从而显著提高了应用程序的性能和效率。这一技术对于大型、高并发的Web...
Java JDBC 数据库连接池总结 Java 语言中,JDBC(Java DataBase Connection)是应用程序与数据库沟通的桥梁。在 Web 应用开发的早期,主要使用的技术是 CGIASPPHP 等。之后,Sun 公司推出了基于 Java 语言的 ...
数据库连接池技术及其在Web系统开发中的应用 数据库连接池技术是指在Web系统开发中,通过池化数据库连接的方式来提高系统性能和可靠性的技术。这种技术可以避免传统的数据库连接模式中频繁建立和关闭连接的开销,...
本文将深入探讨JSP如何与数据库连接池技术结合,以及它们在实际应用中的作用。 一、数据库连接池概念 数据库连接池是管理数据库连接的一种机制,它预先创建并维护一定数量的数据库连接,当应用需要时,可以从池中...
综上所述,数据库连接池是Java Web应用程序中重要的技术组件,它的运用有助于提高数据库操作的效率,并且能够优化整个应用程序的性能表现。掌握连接池的原理与应用,对于Java开发者来说是必不可少的一项技能。
针对当前Web系统普遍存在的不稳定、低效以及难以应对日益增长的访问需求等问题,本文通过对传统Web开发技术中存在的问题进行深入剖析,并结合现有的数据库连接池技术进行探讨,设计了一种基于MVC(Model-View-...
本文将详细介绍C#中数据库连接池的工作原理、优点以及如何在实际项目中应用。 首先,我们来理解数据库连接池的基本概念。数据库连接池是一组预先初始化的数据库连接,当程序需要与数据库建立连接时,可以从池中获取...
在IT行业中,数据库连接池是优化应用程序性能的关键技术之一,特别是在使用Java服务器页面(JSP)进行Web开发时。数据库连接池允许程序高效地管理与数据库的连接,减少了创建和销毁连接的开销,提高了系统资源利用率...
数据库连接池是一种管理数据库连接的技术,它预先初始化一定数量的数据库连接并保存在内存中,当应用程序需要连接数据库时,可以从连接池中获取一个已存在的连接,用完后再归还,而不是每次都新建和关闭连接。...
数据库连接池是数据库管理中的重要概念,它在Java Web应用中尤其常见,主要用于优化数据库的连接管理和资源利用。自定义数据库连接池是为了更好地适应特定应用的需求,提高数据存取的效率,减少系统开销,避免频繁...
数据库连接池管理策略是优化数据库应用性能的关键环节。在软件开发中,特别是涉及到与数据库交互的应用,连接池的使用能够显著提升系统效率。本文将详细解释数据库连接池的工作原理、优缺点以及如何进行管理和配置。...
数据库连接池的基本原理是:当一个应用请求一个新的数据库连接时,连接池不会立即创建一个新的连接,而是从已有的连接池中返回一个已存在的、可重用的连接。如果池中没有空闲连接,它会根据预设的规则创建新的连接并...
数据库连接池是现代应用程序开发中的重要组成部分,它有效地管理和优化了数据库资源的使用,提高了系统的性能和稳定性。本文将深入探讨“数据库连接池选型”的关键知识点,主要以阿里Druid连接池为例,同时也会涉及...
总结来说,数据库连接池是现代数据库驱动的Web应用程序中不可或缺的一部分,它通过有效的管理数据库连接,提高了系统的效率和稳定性,同时也降低了资源消耗和潜在的系统风险。开发者可以根据项目需求选择合适的连接...
数据库连接池在Java编程中扮演着至关重要的角色,特别是在处理大量并发访问的Web应用程序中。数据库连接池是一种管理数据库连接的机制,它允许程序高效地重复使用已建立的数据库连接,而不是每次需要时都创建新的...