最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

tomcat5配置常见数据库连接池的例子.

网站源码admin2浏览0评论

tomcat5配置常见数据库连接池的例子.

环境: w2kp sp4, jsdk1.4.2_8; tomcat5.0.2.8; oracle817, sqlserver2000 sp3 , mysql5 beta

总的来说在tomcat配置一个数据源有4项工作要做. 1. 在server.xml 里配置数据源连接池参数。 可以手动,也可以通过tomcat admin工具。 2. 在 %CATALINA_HOME%\conf\Catalina\localhost\ 下 , 对用你自己的webapp用户 yourapp.xml 配置 对数据源的声明. 3. 在自定义的webapp 下WEB-INFO\web.xml 下配置对数据源的引用。 4. 在特定数据库的jdbc 驱动copy 到%CATALINA_HOME%\common\lib\ 下 其他应用服务器可能要配置classpath 等.

oracle 数据源配置. 1.进入 http://localhost:8080/admin/ conf文件夹下的tomcat-users.xml有管理员的用户名密码等信息。

选择Resources-Data sources进入配置数据源界面,选择Data Source Actions ->选择Create New Data Source,进入配置详细信息界面,内容如下:

JNDI Name: jdbc/oracle Data Source URL: jdbc:oracle:thin:@192.168.0.18:1521:oradb JDBC Driver Class: oracle.jdbc.driver.OracleDriver User Name: oraconn Password: oraconn Max. Active Connections: 20 Max. Idle Connections: 10 Max. Wait for Connection: 5000 Validation Query:

其中oradb 是oracle数据库的SID. oraconn 为oracle可用的用户名密码.

2.进入%TOMCAT_HOME%\conf\Catalina\localhost下,找到你的web应用对应的.xml文件(下面有我的web的目录结构),如 test.xml,并在此文件的下添入代码:

<ResourceLink name="jdbc/oracle" global="jdbc/oracle" type="javax.sql.DataSourcer"/>

3、 修改web.xml和%TOMCAT_HOME%\conf\Catalina\localhost下对应你的引用的配置文件

打开%TOMCAT_HOME%\conf\web.xml,在</web-app>的前面添加以下内容:

<resource-ref>

<description>oraDB Connection</description>

<res-ref-name>jdbc/ora</res-ref-name>

<res-type>javax.sql.DataSource</res-type>

<res-auth>Container</res-auth>

</resource-ref>

注意res-ref-name填写的内容要与在上文提到的JNDI Name名称一致。 4. 在%oracle_home%\ora81\jdbc\lib 下有一个classes12.zip, 和nls_charset12.zip 把这两个文件解压的一个临时目录下例如d:\work\temp\classes12 和 d:\work\temp\nls_charset12 进入这两个目录 d:> cd work\temp\classes12 用 jar -cvf classes12.jar * 创建classes12.jar 同样创建 nls_cahrset12.jar 把这两个jar文件copy 到 %tomcat_home% \common\lib 下。

oracle 数据库配置完毕。 -------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- sqlserver2000

1.进入 http://localhost:8080/admin/ conf文件夹下的tomcat-users.xml有管理员的用户名密码等信息。

选择Resources-Data sources进入配置数据源界面,选择Data Source Actions ->选择Create New Data Source,进入配置详细信息界面,内容如下:

JNDI Name: jdbc/sqlserver Data Source URL: jdbc:microsoft:sqlserver://192.168.0.18:1433;DatabaseName=sqldb JDBC Driver Class: com.microsoft.jdbc.sqlserver.SQLServerDriver User Name: sqlconn Password: sqlconn Max. Active Connections: 20 Max. Idle Connections: 10 Max. Wait for Connection: 5000 Validation Query:

其中sqldb 是sqldb数据库名称. sqlconn 为sqlserver可用的用户名密码.

2.进入%TOMCAT_HOME%\conf\Catalina\localhost下,找到你的web应用对应的.xml文件(下面有我的web的目录结构),如 test.xml,并在此文件的下添入代码:

<ResourceLink name="jdbc/sqlserver" global="jdbc/sqlserver" type="javax.sql.DataSourcer"/>

3、 修改web.xml和%TOMCAT_HOME%\conf\Catalina\localhost下对应你的引用的配置文件

打开%TOMCAT_HOME%\conf\web.xml,在</web-app>的前面添加以下内容:

<resource-ref>

<description>sqlserverDB Connection</description>

<res-ref-name>jdbc/sqlserver</res-ref-name>

<res-type>javax.sql.DataSource</res-type>

<res-auth>Container</res-auth>

</resource-ref>

注意res-ref-name填写的内容要与在上文提到的JNDI Name名称一致。 4. 下载sqlserver2000 jdbc 驱动 .2.0022/UNIX/EN-US/mssqlserver.tar 解压后找到如下jar包 msbase.jar , mssqlserver.jar, msutil.jar 把这3个jar包copy 到 %tomcat_home% \common\lib 下。 sqlserver 配置完毕 ---------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------ mysql5 beta 数据源配置

1.进入 http://localhost:8080/admin/ conf文件夹下的tomcat-users.xml有管理员的用户名密码等信息。

选择Resources-Data sources进入配置数据源界面,选择Data Source Actions ->选择Create New Data Source,进入配置详细信息界面,内容如下:

JNDI Name: jdbc/mysql Data Source URL: jdbc:mysql://192.168.0.18/mysqldb JDBC Driver Class: com.mysql.jdbc.Driver User Name: mysqlconn Password: mysqlconn Max. Active Connections: 20 Max. Idle Connections: 10 Max. Wait for Connection: 5000 Validation Query:

其中sqldb 是sqldb数据库名称. mysqlconn 为sqlserver可用的用户名密码.

2.进入%TOMCAT_HOME%\conf\Catalina\localhost下,找到你的web应用对应的.xml文件(下面有我的web的目录结构),如 test.xml,并在此文件的下添入代码:

<ResourceLink name="jdbc/mysql" global="jdbc/mysql" type="javax.sql.DataSourcer"/>

3、 修改web.xml和%TOMCAT_HOME%\conf\Catalina\localhost下对应你的引用的配置文件

打开%TOMCAT_HOME%\conf\web.xml,在</web-app>的前面添加以下内容:

<resource-ref>

<description>mysqlDB Connection</description>

<res-ref-name>jdbc/sqlmysql</res-ref-name>

<res-type>javax.sql.DataSource</res-type>

<res-auth>Container</res-auth>

</resource-ref>

注意res-ref-name填写的内容要与在上文提到的JNDI Name名称一致。 4. 下载mysql jdbc 驱动 mysql-connector-java-3.1.9.zip

解压后找到如下jar包 mysql-connector-java-3.1.9-bin.jar 这个jar包copy 到 %tomcat_home% \common\lib 下。 mysql 配置完毕

这是conf 下 server.xml 文件 的配置部分 <GlobalNamingResources> <Environment name="simpleValue" type="java.lang.Integer" value="30"/> <Resource auth="Container" description="User database that can be updated and saved" name="UserDatabase" type="org.apache.catalina.UserDatabase"/> <Resource name="jdbc/mysql" type="javax.sql.DataSource"/> <Resource name="jdbc/oracle" type="javax.sql.DataSource"/> <Resource name="jdbc/sqlserver" type="javax.sql.DataSource"/> <ResourceParams name="UserDatabase"> <parameter> <name>factory</name> <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value> </parameter> <parameter> <name>pathname</name> <value>conf/tomcat-users.xml</value> </parameter> </ResourceParams> <ResourceParams name="jdbc/mysql"> <parameter> <name>maxWait</name> <value>5000</value> </parameter> <parameter> <name>maxActive</name> <value>20</value> </parameter> <parameter> <name>password</name> <value>mysqlconn</value> </parameter> <parameter> <name>url</name> <value>jdbc:mysql://192.168.0.18/mysqldb</value> </parameter> <parameter> <name>driverClassName</name> <value>com.mysql.jdbc.Driver</value> </parameter> <parameter> <name>maxIdle</name> <value>10</value> </parameter> <parameter> <name>username</name> <value>mysqlconn</value> </parameter> </ResourceParams> <ResourceParams name="jdbc/oracle"> <parameter> <name>maxWait</name> <value>5000</value> </parameter> <parameter> <name>maxActive</name> <value>20</value> </parameter> <parameter> <name>password</name> <value>oraconn</value> </parameter> <parameter> <name>url</name> <value>jdbc:oracle:thin:@192.168.0.18:1521:oradb</value> </parameter> <parameter> <name>driverClassName</name> <value>oracle.jdbc.driver.OracleDriver</value> </parameter> <parameter> <name>maxIdle</name> <value>10</value> </parameter> <parameter> <name>username</name> <value>oraconn</value> </parameter> </ResourceParams> <ResourceParams name="jdbc/sqlserver"> <parameter> <name>maxWait</name> <value>5000</value> </parameter> <parameter> <name>maxActive</name> <value>20</value> </parameter> <parameter> <name>password</name> <value>sqlconn</value> </parameter> <parameter> <name>url</name> <value>jdbc:microsoft:sqlserver://192.168.0.18:1433;DatabaseName=sqldb</value> </parameter> <parameter> <name>driverClassName</name> <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value> </parameter> <parameter> <name>maxIdle</name> <value>10</value> </parameter> <parameter> <name>username</name> <value>sqlconn</value> </parameter> </ResourceParams> </GlobalNamingResources>

其中192.168.0.18为数据库服务器IP . 下面是 %CATALINA_HOME%\conf\Catalina\localhost 对应的 xml 文件。 我的应用是test.xml

<?xml versi encoding='utf-8'?> <Context displayName="My Web Application" docBase="test" path="/test" workDir="work\Catalina\localhost\test"> <ResourceLink global="jdbc/mysql" name="jdbc/mysql" type="javax.sql.DataSourcer"/> <ResourceLink global="jdbc/sqlserver" name="jdbc/sqlserver" type="javax.sql.DataSourcer"/> <ResourceLink global="jdbc/oracle" name="jdbc/oracle" type="javax.sql.DataSourcer"/> </Context>

以下是test webapp 下的WEB-INFO web.xml文件

<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" ".dtd"> <web-app> <display-name>My Web Application</display-name> <description> A application for test. </description> <!--Mysql Database Config start --> <resource-ref>

<description>mysqlDB Connection</description>

<res-ref-name>jdbc/mysql</res-ref-name>

<res-type>javax.sql.DataSource</res-type>

<res-auth>Container</res-auth>

</resource-ref>

<!-- Mysql Database Config end -->

<!-- Sqlserver Database Config start --> <resource-ref> <description>sqlserverDB Connection</description>

<res-ref-name>jdbc/sqlserver</res-ref-name>

<res-type>javax.sql.DataSource</res-type>

<res-auth>Container</res-auth> </resource-ref> <!-- Sqlserver Database Config end -->

<!-- oracle Database Config start --> <resource-ref>

<description>oracleDB Connection</description>

<res-ref-name>jdbc/oracle</res-ref-name>

<res-type>javax.sql.DataSource</res-type>

<res-auth>Container</res-auth>

</resource-ref> <!-- oracle Database Config end -->

<!-- Example filter to set character encoding on each request --> <filter> <filter-name>Set Character Encoding</filter-name> <filter-class>filters.SetCharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>GB2312</param-value> </init-param> </filter>

<filter-mapping> <filter-name>Set Character Encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>

</web-app> 在oracle , sqlserver , mysql 建立3个类似的简单表来测试 mysql create table test_user ( NAME VARCHAR(50)

) oracle create table test_user ( NAME VARCHAR2(50)

)

sqlserver create table test_user ( NAME VARCHAR(50)

) ok 配置工作已经完成。 让我们写3个JSP来测试。

testDSoracle.jsp文件 <%@ page contentType="text/html;charset=gb2312" %>

<%@ page import="java.sql.*"%>

<%@ page import="javax.sql.*"%>

<%@ page import="javax.naming.*"%>

<%@ page session="false" %>

<html>

<head>

<title></title>

<%

out.print("我的测试开始"+"<br/>");

DataSource ds = null;

try{

InitialContext ctx=new InitialContext();

ds=(DataSource)ctx.lookup("java:comp/env/jdbc/oracle");

Connection conn = ds.getConnection();

Statement stmt = conn.createStatement();

String strSql = " select * from test_user";

ResultSet rs = stmt.executeQuery(strSql);

while(rs.next()){

out.print(rs.getString(1)+"<br/>");

} rs.close(); stmt.close(); conn.close(); out.print("我的测试结束");

}

catch(Exception ex){

out.print("出现例外,信息是:"+ex.getMessage());

ex.printStackTrace();

}

%>

</head>

<body>

</body>

</html>

================================================================================================= testDSsqlserver.jsp文件 <%@ page contentType="text/html;charset=gb2312" %>

<%@ page import="java.sql.*"%>

<%@ page import="javax.sql.*"%>

<%@ page import="javax.naming.*"%>

<%@ page session="false" %>

<html>

<head>

<title></title>

<%

out.print("我的测试开始"+"<br/>");

DataSource ds = null;

try{

InitialContext ctx=new InitialContext();

ds=(DataSource)ctx.lookup("java:comp/env/jdbc/sqlserver");

Connection conn = ds.getConnection();

Statement stmt = conn.createStatement();

String strSql = " select * from test_user";

ResultSet rs = stmt.executeQuery(strSql);

while(rs.next()){

out.print(rs.getString(1)+"<br/>");

} rs.close(); stmt.close(); conn.close(); out.print("我的测试结束");

}

catch(Exception ex){

out.print("出现例外,信息是:"+ex.getMessage());

ex.printStackTrace();

}

%>

</head>

<body>

</body>

</html>

=======================================================================================================

testDSmysql.jsp文件 <%@ page contentType="text/html;charset=gb2312" %>

<%@ page import="java.sql.*"%>

<%@ page import="javax.sql.*"%>

<%@ page import="javax.naming.*"%>

<%@ page session="false" %>

<html>

<head>

<title></title>

<%

out.print("我的测试开始"+"<br/>");

DataSource ds = null;

try{

InitialContext ctx=new InitialContext();

ds=(DataSource)ctx.lookup("java:comp/env/jdbc/mysql");

Connection conn = ds.getConnection();

Statement stmt = conn.createStatement();

String strSql = " select * from test_user";

ResultSet rs = stmt.executeQuery(strSql);

while(rs.next()){

out.print(rs.getString(1)+"<br/>");

} rs.close(); stmt.close(); conn.close(); out.print("我的测试结束");

}

catch(Exception ex){

out.print("出现例外,信息是:"+ex.getMessage());

ex.printStackTrace();

}

%>

</head>

<body>

</body>

</html>

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2012-03-20,如有侵权请联系 cloudcommunity@tencent 删除jdbc测试配置数据库连接池数据库
发布评论

评论列表(0)

  1. 暂无评论