Tomcat配置数据库连接池

本文详细介绍了如何在Tomcat中配置Oracle数据库连接池,包括核心原理和配置步骤,并提供了测试成功的验证方法。
摘要由CSDN通过智能技术生成

Tomcat配置数据库连接池


  动态web的最大特点就是可以进行数据库的操作,传统的jdbc操作由于操作步骤存在重复性而会导致程序性能的下降,此时便可以通过数据源提升数据库的操作性能。
  我们先来分析一下传统jdbc操作的步骤,如下图所示:
   由图可以看出jdbc的操作有以下步骤:
  (1)加载数据库驱动程序,数据库驱动程序通过classpath指定。
  (2)通过DriverManager类获取数据库连接对象。
  (3)通过Connection实例化preparedStatement对象,编写数据库操作指令由其完成。
  (4)关闭数据库,释放资源。
  由以上操作步骤可以知道:每一次我们执行数据库操作时,以上的步骤都要重新执行一遍。但实际上,以上步骤中只有步骤(3)是根据用户实际情况而定的,其余步骤每次执行均属重复。
  所以,我们想要提升程序的性能,就必须把重复的步骤去掉,换句话说也就是只保留步骤(3)。这时(1)(2)(4)步骤就可以直接使用数据源操作代替,而程序性能将会得到大大的提升,这就是数据源产生的原因。

  

  数据源操作的核心原理:

  数据源操作的核心原理就是,在一个对象池中保存多个数据库的连接〔也称为数据库连接池)。这样以后再进行数据库操作时,直接从连接池中取出一个数据库连接。当数据库操作完成后,再将此连接放回到数据库连接池中,等待其他用户继续使用。
  
  

一.Tomcat配置数据库连接池

(1)配置数据库驱动程序
  该数据库连接池是在tomcat上进行配置的,所以要先把ojdbc5/6.jar复制到tomcat的目录下。路径如下:
  Tomcat安装文件夹\lib\ojdbc5/6.jar
  
(2)在server文件中配置数据库连接池(该文件位于tomcat主目录/conf.server.xml)。
  在<Context>节点中添加一个<Resource>的节点:
  <Context path = "/me" docBase = "D:\MyProject\Java\MyProject\WebRoot" reloadable = "true">
  	 <Resource
  	 name = "jdbc/me"
  	 auth = "Container"
  	 type = "javax.sql.DataSource"
  	 maxActive = "100"
  	 maxIdle = "30"
  	 maxWait = "1000"
  	 username = "【替换内容】数据库用户名"
  	 password = "【替换内容】数据库密码"
  	 driverClassName = "oracle.jdbc.driver.OracleDriver"
  	 url = "jdbc:oracle:thin:@localhost:1521:orcl"/>
 </Context>
  
(3)配置web.xml文件
<resource-ref>
<description>OracleDatabaseConnection</description>
<res-ref-name>jdbc/me</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>


二.测试配置是否成功

数据源的操作使用的是JNDI方式进行查找的,所以要用数据源取得数据库连接必须按一下步骤进行:
(1)初始化名称查找上下文:Context ctx = new InitialContext();
(2)通过名称查找DataSource对象:DataSource ds = (DataSource)ctx.lookup(JNDI名称);
(3)通过DataSource取得一个数据库连接:Connection conn = ds.getConnection()

以下是测试的jsp页面,连接成功则会在页面中显示相关信息:
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ page import="javax.naming.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="java.sql.*"%>	
<html>
<head>
<title>ConnectionTest</title>
</head>
<body>
<%
String DSNAME = "java:comp/env/jdbc/me";
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup(DSNAME);
Connection conn = ds.getConnection();
%>
<%=conn %>
<%conn.close(); %>
</body>
</html>



测试成功效果图:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值