TOMCAT 5+MSSQL数据库连接池配置
1、把数据库JDBC驱动拷贝到%TOMCAT_HOME%/common/lib和%TOMCAT_HOME%/webapps/yourweb/WEB-INF/lib下
(我的web文件夹名字叫query)
2、修改%TOMCAT_HOME%/conf/server.xml文件 ,在</HOST>前添加
<Context path="/query" docBase="query" debug="0" reloadable="true" crossContext="true">
<Resource name="jdbc/query" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/query">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=hsqrydb</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value>sa</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>10</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>-1</value>
</parameter>
</ResourceParams>
</Context>
3、修改 %TOMCAT_HOME%/webapps/yourweb/WEB-INF/web.xml的内容如下:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-app_2_4.xsd"
version="2.4">
<display-name>Welcome to Tomcat</display-name>
<description>
query
</description>
<resource-ref>
<description>sqlserverDB Connection</description>
<res-ref-name>jdbc/query</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
4、在对应的sql server 库里面建立对应数据库 hsqrydb
然后建立相应的表book
use hsqrydb;
create table book(bookId varchar(50),bookName varchar(50),publisher varchar(100),price float,constraint pk_book primary key(bookId));
insert into book values('001-22-23-1','insur_info','HSCLIC',59.0);
5、写对应的测试程序代码如下 位置为%TOMCAT_HOME%/webapps/yourweb 目录下
可以命名为:testds.jsp
代码如下:
<!--测试数据源-->
<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import="javax.naming.Context" %>
<%@ page import="javax.sql.DataSource"%>
<%@ page import="javax.naming.InitialContext"%>
<%@ page import="java.sql.*"%>
<%
DataSource ds = null;
try{
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
//从Context中lookup数据源。
ds = (DataSource)envCtx.lookup("jdbc/query");
if(ds!=null)
{
out.println("已经获得DataSource!");
out.println("<br>");
Connection conn = ds.getConnection();
Statement stmt=conn.createStatement();
ResultSet rst=stmt.executeQuery("select * from book");
out.println("以下是从数据库中读取出来的数据");
while(rst.next())
{
out.println("bookName:"+rst.getString("bookName"));
out.println("<br>");
}
}
else
out.println("连接失败!");
}
catch(Exception ne)
{
out.println(ne);
}
%>
6、这些都配置完毕后,重新启动tomcat ,在浏览器中输入
http://127.0.0.1:8080/query/testds.jsp
返回信息为
已经获得DataSource!
以下是从数据库中读取出来的数据 bookName:insur_info
说明配置成功。
在实际配置中要注意的几点是:
1、注意JNDI NAME server.xml中的一定要与web.xml 还有调用的testds.asp中的一致
server.xml
...
<Resource name="jdbc/query" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/query">
....
web.xml
..
<res-ref-name>jdbc/query</res-ref-name>
....
testds.jsp
...
ds = (DataSource)envCtx.lookup("jdbc/query");
....
2、看了有些资料中说要在%TOMCAT_HOME%/conf/Catalina/localhost/目录下配置对应的.xml文件
其实如果你在server.xml中的<context>...</context>中象我上面的配置完整的也就不需要在对应目录下配置了。
也可以说那是另一种配置方式吧
那种方法是在 <GlobalNamingResources>。。。 </GlobalNamingResources>中间设置 但是必须要在
%TOMCAT_HOME%/conf/Catalina/localhost/下建立对应的xml文件
这个文件里面对应的内容写上<context>...</context>,其余的都一样的
这种方法网站上讲到也很多 我就不多说了