1. 首先確保Tomcat安裝文件夾中的\common\lib(對于Tomcat5.5)或者是\lib(Tomcat6.0)文件夾中已包括JDBC連接數據庫所必須的三個.jar文件(msbase.jar , mssqlserver.jar 和msutil.jar,JDBC驅動器中包括這三個文件,僅僅需將JDBC驅動器安裝后的lib文件夾下的這三個文件拷貝到Tomcat安裝文件夾的lib文件夾下就可以)。
2. 改動Tomcat安裝文件夾的conf子文件夾中的server.xml和context.xml文件。
對于server.xml文件,在<GlobalNamingResources>元素中加入例如以下的內容:
<Resource name="數據庫名"
?????? auth="Container"
?????? type="javax.sql.DataSource"
?????? username="sa"
?????? password="123"
?????? driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
?????? maxIdle="10"
?????? maxWait="10000"
?????? maxActive="100"
?????? url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test1"
??? />
注:test1是一個建好的數據庫.
各字段含義例如以下:
name:定義數據庫連接的名稱??????????????? driverClassName:指定JDBC驅動器的類
username:登陸數據庫時使用的用戶名????? password:登陸數據庫的密碼
maxIdle:數據庫連接的最大空暇時間????????? maxWait:表示最大建立連接等待時間
maxActive:連接池的最大數據庫連接數????? url:表示的是須要連接的數據庫的地址和名稱
對于context.xml文件,在<Context>元素中加例如以下內容:
<ResourceLink global="數據庫名字" name="jdbc/TestDB" type="javax.sql.DataSource" />
兩個數據庫名稱應該一一致
3.見一個.jsp文檔來測試
內容例如以下,
我這里在C:\apache-tomcat-6.0.39\webapps\zhanglixuan這個應用下建立的
所以須要改動一下這個應用下的C:\apache-tomcat-6.0.39\webapps\zhanglixuan\WEB-INF\web.xml文檔
在<web-app>標簽之間加入
<resource-ref>?
<description>sqlserverDB Connection</description>?
<res-ref-name>jdbcTestDB</res-ref-name>?
<res-type>javax.sql.DataSource</res-type>?
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>?
</resource-ref>?
然后將以下的jsp代碼替換原來的index.jsp,并訪問這個jsp就可以
完畢配置后,可用例如以下文件來測試連接池配置是否正確.
<%@ page language="java" contentType="text/html; charset=gb2312"
??? pageEncoding="gb2312"%>
<%@ page import="java.sql.*,javax.naming.*" %>
<%
try{
?? Context initCtx=new InitialContext();
?? Context ctx=(Context)initCtx.lookup("java:comp/env");
?? //獲取連接池對象
?? Object obj=(Object)ctx.lookup("jdbc/TestDB");
?? //類型轉換
?? javax.sql.DataSource ds=(javax.sql.DataSource)obj;
?? //從連接池中獲取數據庫連接對象
?? Connection conn=ds.getConnection();
?? Statement stmt=conn.createStatement();
?? //獲取server端時間,該SQL語句適用于SQLServer
?? String strSQL="select getDate()";
?? ResultSet rs=stmt.executeQuery(strSQL);
?? rs.next();
?? Date date=rs.getDate(1);
?? out.println(date.toString());
?? rs.close();
?? stmt.close();
?? conn.close();
}
catch(Exception e){
?? out.println(e);
}
%>
該實例測試程序通過數據庫連接池的方式獲取了MS SQLServer所在server的當前時間,執行結果例如以下,表明連接池配置成功.
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
