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>,其余的都一样的 这种方法网站上讲到也很多 我就不多说了 |