Tomcat连接池一分钟配置
步骤一:
在%TOMCAT_HOME%conf/Catalina/localhost/目录下建立一个以工程名命名的XML文件。
例:oracletest.xml
具体内容如下:
<?xml version='1.0' encoding='utf-8'?>
<Context path="/oracletest" docBase="G:\JSPStudy\oracletest" debug="5" reloadable="true" crossContext="true">
<Resource name="jdbc/oracletest" auth="Container"
type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:ACCP"
username="scott" password="accp" maxActive="20" maxIdle="10" maxWait="-1"/>
</Context>
具体元素什么意思,这里不作解释了。
值得注意的是:url里的accp为Oracle的SID。
步骤二:
在g:\jspstudy\目录下建立工程:oracletest
在oracletest目录下建立工程所需要的目录:
oracletest/WEB-INF
oracletest/WEB-INF/classes
oracletest/WEB-INF/lib
在oracletest/WEB-INF/下建立web.xml文件。
web.xml内容如下:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
</web-app>
步骤三:
将%ORACLE_HOME%\ora92\jdbc\lib\ojdbc14_g.jar文件Copy到%TOMCAT_HOME%\lib目录下。
ojdbc14_g.jar包视Oracle版本而异。
步骤四:
测试连接池。
1.在oracletest工程WEB-INF\classes目录下建立DBConnection.java文件。
DBConnection.java文件内容如下:
package com.canca.oracletest.util;
import java.sql.*;
import javax.naming.*;
import javax.sql.DataSource;
public class DBConnection
{
public static synchronized Connection getConnection() throws Exception
{
try
{
Context initCtx = new javax.naming.InitialContext();
DataSource ds = (DataSource)initCtx.lookup("java:comp/env/jdbc/oracletest");
return ds.getConnection();
}
catch(Exception e)
{
throw e;
}
}
}
//该类是用来获得数据连接的。
2.在该目录下也建立一个DBUtil.java文件
内容如下:
package com.canca.oracletest.util;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.Connection;
public abstract class DBUtil{
public static ResultSet getQueryResultSet(Connection conn,String query){
try{
if(conn != null){
Statement sm = conn.createStatement();
ResultSet rs = sm.executeQuery(query);
return rs;
}else{
return null;
}
}catch(Exception ex){
ex.printStackTrace();
return null;
}
}
public static void closeConnection(Connection conn){
if(conn != null){
try{
conn.close();
conn = null;
}catch(Exception ex){}
}
}
public static void closeResultSet(ResultSet rs){
if(rs != null){
try{
rs.close();
rs = null;
}catch(Exception ex){}
}
}
}
//该类是用来查询数据库的工具类。
3.在oracletest工程根目录下建立index.jsp文件。
index.jsp文件内容如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="com.canca.oracletest.util.DBUtil,com.canca.oracletest.util.DBConnection"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Tomcat连接池Oracle数据库实例</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link href="css/style.css" rel="stylesheet" type="text/css">
<html:base/>
</head>
<body>
<%
java.sql.Connection conn = DBConnection.getConnection();
java.sql.ResultSet rs = DBUtil.getQueryResultSet(conn,"select * from emp");
%>
<p>scott.emp表</p>
<table border="1">
<tr>
<th>EMPNO</th>
<th>ENAME</th>
<th>JOB</th>
<th>MGR</th>
<th>HIREDATE</th>
<th>SAL</th>
<th>COMM</th>
<th>DEPTNO</th>
</tr>
<%
while(rs.next()){
out.print("<tr>");
out.print("<td>");
out.print(rs.getInt("EMPNO"));
out.print("</td>");
out.print("<td>");
out.print(rs.getString("ENAME"));
out.print("</td>");
out.print("<td>");
out.print(rs.getString("JOB"));
out.print("</td>");
out.print("<td>");
out.print(rs.getInt("MGR"));
out.print("</td>");
out.print("<td>");
out.print(rs.getDate("HIREDATE"));
out.print("</td>");
out.print("<td>");
out.print(rs.getInt("SAL"));
out.print("</td>");
out.print("<td>");
out.print(rs.getInt("COMM"));
out.print("</td>");
out.print("<td>");
out.print(rs.getInt("DEPTNO"));
out.print("</td>");
out.print("</tr>");
}
DBUtil.closeResultSet(rs);
DBUtil.closeConnection(conn);
%>
</table>
</body>
</html>
步骤五:
编译类:
cmd-->cd G:\JSPStudy\oracletest\WEB-INF\classes -->g: -->javac -d . *.java
步骤六:
开TOMCAT服务器,开ORACLE服务器。
值得注意的是:Tomcat默认服务器端口8080可能会被Oracle占用。如果被占用的话,请修改Tomcat端口。
备注:在 Tomcat6.0 + Oracle9i + winxp sp2 上运行成功!