软件:
(1)tomcat5.0
http://www.apache.org
(2)jtds.jar
http://jtds.sourceforge.net/
(3)jdk1.4
(4)Sqlserver2000(windows2003系统需要sp3补丁)
设置环境变量:
(1)CATALINA_HOME
tomcat的安装路径,如:E:\Tomcat5.0
(2)CATALINA_BASE
tomcat的安装路径,如:E:\Tomcat5.0
(3)JAVA_HOME
jdk安装路径,如:E:\Program Files\j2sdk1.4.2
(4)PATH
%JAVA_HOME%\bin
(5)class_path
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\common\lib\servlet-api.jar(前面的.和;不能少)
将jtds.jar放在正确的目录
只能放在%CATALINA_HOME%\common\lib\目录下
修改server.xml文件
改文件位于:;%CATALINA_HOME%\conf\server.xml
在<host>与</host> 之间,修改后的内容为:
< Context path = "/tiannet" docBase = "E:\tiannet"
debug = "5" reloadable = "true" crossContext = "true" >
< Logger className = "org.apache.catalina.logger.FileLogger"
directory = "logs" prefix = "localhost_log." suffix = ".txt"
timestamp = "true" />
< Resource name = "jdbc/connectDB"
auth = "Container"
type = "javax.sql.DataSource" />
< ResourceParams name = "jdbc/connectDB" >
< parameter >
< name > factory </ name >
< value > org . apache . commons . dbcp . BasicDataSourceFactory </ value >
</ parameter >
< parameter >
< name > removeAbandoned </ name >
< value > true </ value >
</ parameter >
< parameter >
< name > removeAbandonedTimeout </ name >
< value > 60 </ value >
</ parameter >
< parameter >
< name > logAbandoned </ name >
< value > false </ value >
</ parameter >
< parameter >
< name > maxActive </ name >
< value > 100 </ value >
</ parameter >
< parameter >
< name > maxIdle </ name >
< value > 30 </ value >
</ parameter >
< parameter >
< name > maxWait </ name >
< value > 10000 </ value >
</ parameter >
< parameter >
< name > username </ name >
< value > sa </ value >
</ parameter >
< parameter >
< name > password </ name >
< value > 123 </ value >
</ parameter >
< parameter >
< name > driverClassName </ name >
< value > net . sourceforge . jtds . jdbc . Driver </ value >
</ parameter >
< parameter >
< name > url </ name >
< value > jdbc : jtds : sqlserver : //127.0.0.1:1433/tiannet;charset=gb2312</value>
</ parameter >
</ ResourceParams >
</ Context >
参数说明
1) path 指定路径,也就是访问web的路径,这里为 http://localhost:8080/tiannet
2) docBase 虚拟目录的路径,绝对路径。如果虚拟目录设置%CATALINA_HOME%\webapps目录的某个子目录下(如tiannet),则可直接写子目录名称(如tiannet)。
3) reloader 当网页被更新时是否重新编译。
4) maxActive 连接池的最大数据库连接数。设为0表示无限制。
5) maxIdle 数据库连接的最大空闲时间。超过此空闲时间,数据库连接将被标记为不可用,然后被释放。设为0表示无限制。
6) maxWait 最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。
7) removeAbandoned 回收被遗弃的(一般是忘了释放的)数据库连接到连接池中。
8) removeAbandonedTimeout 数据库连接过多长时间不用将被视为被遗弃而收回连接池中。
9) logAbandoned 将被遗弃的数据库连接的回收记入日志。
10) driverClassName JDBC驱动程序。
11)username : 连接数据库的用户名
12)password : 连接数据库的密码
13) url 格式化数据库连接字符串(这里的tiannet为数据库名),格式为:
jdbc:jtds:<server_type>: //<server>[:<port>][/<database>][;<property>=<value>[;...]]
更多url的说明请参照:
http://jtds.sourceforge.net/faq.html
将上面的内容修改保存,并重新启动tomcat后,在%CATALINA_HOME%\conf\Catalina\localhost\目录下会多出一个xml文件,这里为:tiannet.xml。现在虚拟目录就生效了。
修改/WEB-INF/web.xml文件
在虚拟目录的根目录(这里为:E:\tiannet)下建立WEB-INF目录,在WEB-INF目录下新建一个web.xml文件,基本内容为:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<web-app>
<display-name>tiannet web</display-name>
<description>connectDB test</description>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/connectDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
注意<res-ref-name>jdbc/connectDB</res-ref-name>的jdbc/connectDB和server.xml文件中的Resource的name属性以及ResourceParams的name属性值是一样的。
测试连接池的代码
<%@ page contentType = "text/html;charset=gb2312" %>
<%@ page import = "java.sql.*" %>
<%@ page import = "javax.sql.*" %>
<%@ page import = "javax.naming.*" %>
< html >
< body >
<%
DataSource ds = null ;
Connection conn = null ;
ResultSet rs = null ;
Statement stmt = null ;
InitialContext ctx = null ;
String m_strDriver = "net.sourceforge.jtds.jdbc.Driver" , // 驱动字符串
m_strConURL = "jdbc:jtds:sqlserver" ; // 连接字符串
try
{
ctx =new InitialContext ();
ds =( DataSource ) ctx . lookup ( "java:comp/env/jdbc/connectDB" ); //注意connectDB的名称和上面一致
conn = ds . getConnection ();
stmt = conn . createStatement ();
String strSql = " select * from test" ; //test为数据库中的一个表
rs = stmt . executeQuery ( strSql );
while( rs . next ())
{
out . println ( rs . getString ( 1 ) + "" );
out . println ( rs . getString ( 2 ) + "" );
}
}
catch ( Exception ex )
{
out . println ( ex . getMessage ());
}
finally
{
rs . close ();
stmt . close ();
conn . close ();
ctx . close ();
}
%>
</ body >
</ html >
到这里所有的配置就结束了