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的地方,把下面的代码
粘贴到文件里面
1<context crosscontext="true" debug="5" docbase="D:\rautinee work\db\" path="/DBTest" reloadable="true">
2<logger classname="org.apache.catalina.logger.FileLogger" prefix="localhost_DBTest_log." suffix=".txt" timestamp="true"></logger>
3<resource auth="Container" name="jdbc/TestDB" type="javax.sql.DataSource"></resource>
4<resourceparams name="jdbc/TestDB">
5<parameter>
6<name>factory</name>
7<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
8</parameter>
9<!-- Maximum number of dB connections in pool. Make sure you
10configure your mysqld max_connections large enough to handle
11all of your db connections. Set to 0 for no limit.
12\-->
13<parameter>
14<name>maxActive</name>
15<value>100</value>
16</parameter>
17<!-- Maximum number of idle dB connections to retain in pool.
18Set to 0 for no limit.
19\-->
20<parameter>
21<name>maxIdle</name>
22<value>30</value>
23</parameter>
24<!-- Maximum time to wait for a dB connection to become available
25in ms, in this example 10 seconds. An Exception is thrown if
26this timeout is exceeded. Set to -1 to wait indefinitely.
27\-->
28<parameter>
29<name>maxWait</name>
30<value>10000</value>
31</parameter>
32<!-- MSSQLserver dB username and password for dB connections -->
33<parameter>
34<name>username</name>
35<value>sa</value>
36</parameter>
37<parameter>
38<name>password</name>
39<value></value>
40</parameter>
41<!-- Class name for mssqlserver JDBC driver -->
42<parameter>
43<name>driverClassName</name>
44<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
45</parameter>
46<!-- The JDBC connection url for connecting to your mssqlserver dB.-->
47<parameter>
48<name>url</name>
49<value>jdbc:microsoft:sqlserver://localhost:1433;databasename=Northwind</value>
50</parameter>
51</resourceparams>
52</context>
注意:我本地的数据库的sa的密码为空,数据库使用的是Northwind,我的目录名DBTest,他的目录是D:\rautinee work\db\
打开DBTest下面的web.xml文件,用下面的代码替换原来的内容
1<web-app>
2<description>MSSql server Test App</description>
3<resource-ref>
4<description>DB Connection</description>
5<res-ref-name>jdbc/TestDB</res-ref-name>
6<res-type>javax.sql.DataSource</res-type>
7<res-auth>Container</res-auth>
8</resource-ref>
9</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文件
1<html>
2<head>
3<title>DB Test</title>
4</head>
5<body>
foo.DBTest tst = new foo.DBTest();
tst.init();
1
2<h2>Ms sql server 2000 java search Results</h2>
3Foo ```
4= tst.getFoo()
Bar ``` = tst.getBar()
1
2</body>
3</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:[email protected] http://www.tryitsoft.com