Tomcat5+Mssql server 2000数据库连接池配置之旅
tomcat相信大家已经很熟悉了,作为一种免费而强大的java web server,得到了很多java爱好者的青睐,最新版本的tomcat5支持servlet2.4和jsp2.0,今天我将采用tomcat5和ms sqlserver 000一起来开始数据库连接池配置之旅。
需要的准备
1、jdk 我使用的版本1.4.01
2、tomcat 5 我使用的是5.0.16版本 下载地址:http://jakarta.apache.org/site/binindex.cgi
3、mssql server 2000 数据库
4、mssql server 2000的官方jdbc driver ,可以到微软的官方网站免费下载
好了在安装完上面的软件之后,就进入配置实战了:)
一、找到jdbc的安装目录,把lib目录下面的msbase.jar和mssqlserver.jar、msutil.jar三个文件一起copy到$catalina_home/common/lib/($catalina_home代表的是你的tomcat5的安装目录)
二、用文本编辑器,我这是使用editplus(她可是我的挚爱奥)打开$catalina_home/conf/server.xml文件,找到配置context的地方,把下面的代码
粘贴到文件里面
<context path="/dbtest" docbase="d:\rautinee work\db\"
debug="5" reloadable="true" crosscontext="true">
<logger classname="org.apache.catalina.logger.filelogger"
prefix="localhost_dbtest_log." suffix=".txt"
timestamp="true"/>
<resource name="jdbc/testdb"
auth="container"
type="javax.sql.datasource"/>
<resourceparams name="jdbc/testdb">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.basicdatasourcefactory</value>
</parameter>
<!-- maximum number of db connections in pool. make sure you
configure your mysqld max_connections large enough to handle
all of your db connections. set to 0 for no limit.
-->
<parameter>
<name>maxactive</name>
<value>100</value>
</parameter>
<!-- maximum number of idle db connections to retain in pool.
set to 0 for no limit.
-->
<parameter>
<name>maxidle</name>
<value>30</value>
</parameter>
<!-- maximum time to wait for a db connection to become available
in ms, in this example 10 seconds. an exception is thrown if
this timeout is exceeded. set to -1 to wait indefinitely.
-->
<parameter>
<name>maxwait</name>
<value>10000</value>
</parameter>
<!-- mssqlserver db username and password for db connections -->
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value></value>
</parameter>
<!-- class name for mssqlserver jdbc driver -->
<parameter>
<name>driverclassname</name>
<value>com.microsoft.jdbc.sqlserver.sqlserverdriver</value>
</parameter>
<!-- the jdbc connection url for connecting to your mssqlserver db.-->
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://localhost:1433;databasename=northwind</value>
</parameter>
</resourceparams>
</context>
注意:我本地的数据库的sa的密码为空,数据库使用的是northwind,我的目录名dbtest,他的目录是d:\rautinee work\db\
打开dbtest下面的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>
<description>mssql server test app</description>
<resource-ref>
<description>db connection</description>
<res-ref-name>jdbc/testdb</res-ref-name>
<res-type>javax.sql.datasource</res-type>
<res-auth>container</res-auth>
</resource-ref>
</web-app>
ok,配置完成,下面的工作是需要编写两个文件测试一下,连接是否成功。
这里我用了http://jakarta.apache.org上面的例子
首先是bean文件
package foo;
import javax.naming.*;
import javax.sql.*;
import java.sql.*;
public class dbtest {
string foo = "not connected";
int bar = -1;
public void init() {
try{
context ctx = new initialcontext();
if(ctx == null )
throw new exception("boom - no context");
datasource ds = (datasource)ctx.lookup("java:comp/env/jdbc/testdb");
if (ds != null) {
connection conn = ds.getconnection();
if(conn != null) {
foo = "got connection "+conn.tostring();
statement stmt = conn.createstatement();
resultset rst =
stmt.executequery("select * from orders");
if(rst.next()) {
foo=rst.getstring("customerid");
bar=rst.getint("orderid");
}
conn.close();
}
}
}catch(exception e) {
e.printstacktrace();
}
}
public string getfoo() { return foo; }
public int getbar() { return bar;}
}
然后是index.jsp文件
<html>
<head>
<title>db test</title>
</head>
<body>
<%
foo.dbtest tst = new foo.dbtest();
tst.init();
%>
<h2>ms sql server 2000 java search results</h2>
foo <%= tst.getfoo() %><br/>
bar <%= tst.getbar() %>
</body>
</html>
'www.knowsky.com
编译运行,如果不出意外,应该检索到一条记录,
我的ie中显示的是
ms sql server 2000 java search results
foo vinet
bar 10248
ok,配制成功!
参考文档:
http://jakarta.apache.org/tomcat/tomcat-5.0-doc/jndi-datasource-examples-howto.html 上面有mysql和oracle8i的连接教程,有兴趣的朋友可以上去看一下。
作者 海仔 email:rautinee@21cn.com http://www.tryitsoft.com