服务器

位置:IT落伍者 >> 服务器 >> 浏览文章

怎样做Tomcat4.1.31的数据库连接池配置


发布日期:2018年07月20日
 
怎样做Tomcat4.1.31的数据库连接池配置

Tomcat简介

Tomcat是Apache Jakarta的子项目之一是Sun公司推荐的JSPServlet容器作为一款优秀的应用服务器Tomcat提供了数据库连接池SSLProxy等许多通用组件功能其中连接池是以上版本的新增功能应用非常广泛

该文配置环境

Tomcat + jdk + Sql Server + Win AS

对Tomcat的DBCP配置

这里将连接池置于tomcat的工程目录中的blog子文件夹(新建)下JNDI名设为jdbc/blog数据库服务器IP为localhostSID为blog配置步骤如下

第一步配置serverxml:

在serverxml中找到

<! Tomcat Root Context >

<!?

<Context path= docBase=ROOT debug=/>

>

将其改为

<Context path=/blog docBase=blog debug= reloadable=true>

<Resource name=jdbc/blog auth=Container type=javaxsqlDataSource/>

<ResourceParams name=jdbc/blog>

<parameter>

<name>factory</name>

<value>monsdbcp

BasicDataSourceFactory</value>

</parameter>

<parameter>

<name>driverClassName</name>

<value>commicrosoftjdbc

sqlserverSQLServerDriver</value>

</parameter>

<parameter>

<name>url</name>

<value>jdbc:microsoft:sqlserver

://localhost:;databaseName=blog</value>

</parameter>

<parameter>

<name>username</name>

<value>sa</value>

</parameter>

<parameter>

<name>password</name>

<value>sa</value>

</parameter>

<parameter>

<name>maxActive</name>

<value></value>

</parameter>

<parameter>

<name>maxIdle</name>

<value></value>

</parameter>

<parameter>

<name>maxWait</name>

<value></value>

</parameter>

</ResourceParams>

</Context>

参数说明

Resource项

<Resourcename=jdbc/blog

auth=Container

type=javaxsqlDataSource/>

Resource项(即连接池的DataSource对象)个属性nameauthtypename项是JNDI的名称定义程序通过JNDI才能找到此对象这里取名jdbc/Sblogauth项即连接池管理权属性这里取值Container申明为容器管理type项即对象的类型这里取值javaxsqlDataSource申明为数据库连接池

在接下来的域内容里包含四个参数userpassworddriverClassNamedriverName依次为数据库的用户名密码JDBC驱动和数据库地址

factory参数

<parameter>

<name>factory</name>

<value>monsdbcp

BasicDataSourceFactory</value>

</parameter>

即基础对象工厂这里取值monsdbcpBasicDataSourceFactory即DBCP自带的工厂也可以用别的

DriverClassName参数

<parameter>

<name>driverClassName</name>

<value>commicrosoftjdbc

sqlserverSQLServerDriver</value>

</parameter>

即数据库的JDBC驱动名称具体值为

Sql Server : commicrosoft

jdbcsqlserverSQLServerDriver

首先要下载安装sqlserverjdbc驱动然后将其lib下的三个jar文件放到tomcat/common/lib下

MySql

orggjtmmmysqlDriver

MySql的JDBC驱动包mmmysqljar

Oracle oraclejdbcdriverOracleDriver

Oracle的JDBC驱动包名叫classesjar一般位于Oracle安装目录下的ora\jdbc\lib目录下初始扩展名为ZIP需要手工把classeszip改名为classesjar并放到tomcat/common/lib下oraclejdbcdriverOracleDriver此类由classesjar提供

url参数

<parameter>

<name>url</name>

<value>jdbc:microsoft:sqlserver:

//localhost:;databaseName=blog</value>

</parameter>

即数据库的地址(不同的数据库其地址都不相同)

username参数

<parameter>

<name>username</name>

<value>sa</value>

</parameter>

即连接数据库的用户名

password参数

<parameter>

<name>password</name>

<value>**</value>

</parameter>

即连接数据库的密码

maxActivemaxIdle和maxWait参数

<parameter>

<name>maxActive</name>

<value></value>

</parameter>

<parameter>

<name>maxIdle</name>

<value></value>

</parameter>

<parameter>

<name>maxWait</name>

<value></value>

</parameter>

maxActive是最大激活连接数这里取值为表示同时最多有个数据库连接maxIdle是最大的空闲连接数这里取值为表示即使没有数据库连接时依然可以保持空闲的连接而不被清除随时处于待命状态MaxWait是最大等待秒钟数这里取值表示无限等待直到超时为止也可取值表示秒后超时

第二步配置webxml

打开webapps/ROOT/WEBINF下webxml加入如下内容

<resourceref>步为营

<description>SqlServer

Datasource example</description>

<resrefname>jdbc/blog</resrefname>

<restype>javaxsqlDataSource</restype>

<resauth>Container</resauth>

</resourceref>

第三步配置tomcat(添加类)

将Microsoft SQL Server Driver for JDBC\lib目录下的三个jar文件拷贝到Tomcat安装目录的common\lib下配置完成

测试代码

数据库如下

新建一个名为blog的数据库在里面创建一个表格

Create table test(id varchar()

name varchar());

写一个jsp文件(testdbjsp)将其置于webapps/ROOT目录下打开tomcat运行该页面进行测试页面testdbjsp的内容如下

<%@ page contentType=

text/html;charset=GBK%>

<%@ page import= javasql* %>

<%@ page import= javaxnaming* %>

<%

try{

Context initCtx =

new InitialContext();

Context ctx = (Context)

initCtxlookup(java:comp/env);

//获取连接池对象

Object obj =

(Object) ctxlookup(jdbc/blog);

//类型转换

javaxsqlDataSource

ds = (javaxsqlDataSource)obj;

Connection conn = dsgetConnection();

Statement stmt = conncreateStatement();

String strSql =

insert into test(idname)

values(′′fany′);

stmtexecuteUpdate(strSql);

strSql = select idname from test ;

ResultSet rs = stmtexecuteQuery(strSql);

if(rsnext()){

outprintln(rsgetString());

outprintln(rsgetString());

}

}catch(Exception ex){

exprintStackTrace();

throw new SQLException

(cannot get Connection pool);

}

%>

运行tomcat打开浏览器输入正常情况下会在页面上看到 fany输出

上一篇:tomcat的session实现原理

下一篇:Apache http Server与Tomcat整合