淺談在JSP中利用Microsoft JDBC來(lái)連接數(shù)據(jù)庫(kù)
情況比想象中的要壞得多:調(diào)了一個(gè)多小時(shí),終于連接到SQL Server2000,很惱火啊,呵呵!
1. 安裝Microsoft JDBC Driver
勿庸多言,按“下一步”完成安裝。
2. 配置
先講一下環(huán)境變量的作用:
JAVA_HOME變量:用于設(shè)定JAVA開(kāi)發(fā)包所在目錄
TOMCAT_HOME變量:用于設(shè)定TOMCAT伺服器所在目錄
CLASSPATH變量:被編譯的java或jsp文件中import一些類(lèi)庫(kù)(如java.io.*, java.lang.*等),當(dāng)編譯程序javac.exe編譯java或jsp文件時(shí),必須要知道這些類(lèi)庫(kù)所在路徑。所以,CLASSPATH是用于設(shè)定java類(lèi)庫(kù)
的搜索路徑,通常需要在CLASSPATH中設(shè)置值: %JAVA_HOME%\lib。當(dāng)安裝完Microsoft JDBC Driver后,還需要加入: %JDBC_INSTALL_PATH%\lib\msbase.jar;%JDBC_INSTALL_PATH%\lib\mssqlserver.jar;%JDBC_INSTALL_PATH%\msutil.jar
注意:%JDBC_INSTALL_PATH%是安裝Microsoft JDBC Driver的目錄,例如,設(shè)置這個(gè)環(huán)境變量JDBC_INSTALL_PATH = "c:\program files\microsoft jdbc driver"
path變量: 用于設(shè)置java.exe(執(zhí)行已編譯后的class), javac.exe(編譯java文件為class)等執(zhí)行文件的路徑, 例如,可以在dos控制臺(tái)下直接鍵入javac.exe,而不用切換到j(luò)avac.exe所在目錄再執(zhí)行javac.exe。
3. 要點(diǎn)
一定要記得在安裝完成Microsoft JDBC后,將安裝目錄中的lib目錄下三個(gè)jar文件:
msbase.jar, mssqlserver.jar, msutil.jar拷貝到Tomcat目錄下common\lib目錄下,之后,必須重新啟動(dòng)Tomcat!這樣做的目的是,jsp頁(yè)面在編譯過(guò)程中不會(huì)出現(xiàn)找不到sql server driver類(lèi)庫(kù)的問(wèn)題.
但我實(shí)在是不明白:%JAVA_HOME%\lib已被設(shè)置為默認(rèn)的庫(kù)路徑,當(dāng)我把Microsoft JDBC Driver的三個(gè)jar文件:msbase.jar,mssqlserver.jar,msutil.jar拷貝到%JAVA_HOME%lib中后(%JAVA_HOME%\jre\lib也作了測(cè)試,并且設(shè)置了相應(yīng)的CLASSPATH,結(jié)果一樣),然后運(yùn)行jsp頁(yè)面,卻還仍然提示找不到驅(qū)動(dòng)程序類(lèi)庫(kù)。
難道,TOMCAT只識(shí)別自已的common\lib目錄下的類(lèi)庫(kù)?
4. 連接SQL Server 2000的JSP代碼
- <%@ page import="java.lang.*, java.io.*, java.sql.*, java.util.*" contentType="text/html; charset=EUC_CN" %>
- <html>
- <body>
- <%
- Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
- String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=OA"; // OA是數(shù)據(jù)庫(kù)名稱(chēng)
- String user="sa";
- String password="";
- Connection conn= DriverManager.getConnection(url,user,password);
- Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
- String sql="select * from MEMBERS_INFO"; // MEMBERS_INFO是表名
- ResultSet rs=stmt.executeQuery(sql);
- while(rs.next())
- {
- %>
- 您的***個(gè)字段內(nèi)容為:<%=rs.getString(1)%>
- 您的第二個(gè)字段內(nèi)容為:<%=rs.getString(2)%>
- <%
- }
- %>
- <%out.print("數(shù)據(jù)庫(kù)操作成功,恭喜你");%>
- <%
- rs.close();
- stmt.close();
- conn.close();
- %>
- body>
- html>
在JSP中使用Microsoft JDBC連接數(shù)據(jù)庫(kù)就介紹到這里。
【編輯推薦】