1. 首先確保Tomcat安裝文件夾中的\common\lib(對(duì)于Tomcat5.5)或者是\lib(Tomcat6.0)文件夾中已包括JDBC連接數(shù)據(jù)庫所必須的三個(gè).jar文件(msbase.jar , mssqlserver.jar 和msutil.jar,JDBC驅(qū)動(dòng)器中包括這三個(gè)文件,僅僅需將JDBC驅(qū)動(dòng)器安裝后的lib文件夾下的這三個(gè)文件拷貝到Tomcat安裝文件夾的lib文件夾下就可以)。
2. 改動(dòng)Tomcat安裝文件夾的conf子文件夾中的server.xml和context.xml文件。
對(duì)于server.xml文件,在<GlobalNamingResources>元素中加入例如以下的內(nèi)容:
<Resource name="數(shù)據(jù)庫名"
?????? 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是一個(gè)建好的數(shù)據(jù)庫.
各字段含義例如以下:
name:定義數(shù)據(jù)庫連接的名稱??????????????? driverClassName:指定JDBC驅(qū)動(dòng)器的類
username:登陸數(shù)據(jù)庫時(shí)使用的用戶名????? password:登陸數(shù)據(jù)庫的密碼
maxIdle:數(shù)據(jù)庫連接的最大空暇時(shí)間????????? maxWait:表示最大建立連接等待時(shí)間
maxActive:連接池的最大數(shù)據(jù)庫連接數(shù)????? url:表示的是須要連接的數(shù)據(jù)庫的地址和名稱
對(duì)于context.xml文件,在<Context>元素中加例如以下內(nèi)容:
<ResourceLink global="數(shù)據(jù)庫名字" name="jdbc/TestDB" type="javax.sql.DataSource" />
兩個(gè)數(shù)據(jù)庫名稱應(yīng)該一一致
3.見一個(gè).jsp文檔來測(cè)試
內(nèi)容例如以下,
我這里在C:\apache-tomcat-6.0.39\webapps\zhanglixuan這個(gè)應(yīng)用下建立的
所以須要改動(dòng)一下這個(gè)應(yīng)用下的C:\apache-tomcat-6.0.39\webapps\zhanglixuan\WEB-INF\web.xml文檔
在<web-app>標(biāo)簽之間加入
<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,并訪問這個(gè)jsp就可以
完畢配置后,可用例如以下文件來測(cè)試連接池配置是否正確.
<%@ 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");
?? //獲取連接池對(duì)象
?? Object obj=(Object)ctx.lookup("jdbc/TestDB");
?? //類型轉(zhuǎn)換
?? javax.sql.DataSource ds=(javax.sql.DataSource)obj;
?? //從連接池中獲取數(shù)據(jù)庫連接對(duì)象
?? Connection conn=ds.getConnection();
?? Statement stmt=conn.createStatement();
?? //獲取server端時(shí)間,該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);
}
%>
該實(shí)例測(cè)試程序通過數(shù)據(jù)庫連接池的方式獲取了MS SQLServer所在server的當(dāng)前時(shí)間,執(zhí)行結(jié)果例如以下,表明連接池配置成功.
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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