Java Web項(xiàng)目中連接Access數(shù)據(jù)庫的配置方法_JSP教程
推薦:JDBC連接Access數(shù)據(jù)庫的幾種方式介紹前幾天老師讓作幾個(gè)JSP連接數(shù)據(jù)庫的例子,而且連接的數(shù)據(jù)庫是Access數(shù)據(jù)庫,對(duì)于這個(gè)數(shù)據(jù)庫自己也不是太了解,后來了解到學(xué)習(xí)JDBC的時(shí)候,連接access是很方便的,很容易的,但是在連接的時(shí)候也出現(xiàn)了問題,但是還是解決了
老師決定期末考試采用access數(shù)據(jù)庫實(shí)現(xiàn)增刪改查,我認(rèn)為現(xiàn)在的我已經(jīng)沒有問題了,但是以前都是在JSP頁面中連接access數(shù)據(jù)庫,無論是以下的那種方式都進(jìn)行了連接的練習(xí),但是現(xiàn)在我想讓我的項(xiàng)目中的訪問access數(shù)據(jù)庫的java代碼,封裝到DAO中,在DAO中連接數(shù)據(jù)庫,沒有和Servlet API有任何的關(guān)系。對(duì)于大多數(shù)人都會(huì)優(yōu)先選擇使用ODBC數(shù)據(jù)源的方式或者是使用絕對(duì)路徑的方式連接access數(shù)據(jù)庫,但是我個(gè)人認(rèn)為,這樣做不太好,如果采用這樣的方式,項(xiàng)目做好后,放到他人的服務(wù)器上是無法運(yùn)行的,因?yàn)閿?shù)據(jù)庫的信息不存在了,而我現(xiàn)在的想法是無論項(xiàng)目放那一臺(tái)支持jdbc-odbc機(jī)器的服務(wù)器上都可以連接數(shù)據(jù)庫,并運(yùn)行項(xiàng)目,所以要完成這樣的操作,只有在讓access數(shù)據(jù)庫的mdb文件隨著項(xiàng)目的移動(dòng)而移動(dòng),因此,在Java Web項(xiàng)目,將mdb文件放入到WebRoot下或者其子目錄下。但是在DAO中如何得到該mdb的真實(shí)路徑呢?
其實(shí),這個(gè)和在JSP中動(dòng)態(tài)的得到mdb文件的路徑的思想基本上是一樣。
先復(fù)習(xí)一下jsp中使用access數(shù)據(jù)庫吧!
例如有如下的Access數(shù)據(jù)庫student,表basic,以及6條記錄,現(xiàn)在通過幾種方式在Jsp中將他們的數(shù)據(jù)顯示出來。如圖所示:

對(duì)于幾種連接Access數(shù)據(jù)庫的方式,基本上都是基于JDBC-ODBC方式的,當(dāng)然也有純JDBC驅(qū)動(dòng)的方式。這里我暫時(shí)就不說了。對(duì)于這幾種方式,除了取得連接之處不同外,其他的代碼都是一樣的。所以這里先寫出取得連接的幾種方式,然后再用完整的代碼進(jìn)行顯示。
方式一:通過JDBC-ODBC方式橋連直接連接:
1、對(duì)于這種方式,首先要建立ODBC數(shù)據(jù)源,我的系統(tǒng)是Win7系統(tǒng),所以依次選擇“控制面板----管理工具----數(shù)據(jù)源(ODBC)”,打開數(shù)據(jù)源管理器,如圖所示:

2、在“系統(tǒng)DSN”選項(xiàng)卡中,單擊“添加”按鈕,打開創(chuàng)建數(shù)據(jù)源對(duì)話框,選擇Access數(shù)據(jù)庫的驅(qū)動(dòng)程序“Microsoft Access Driver(*.mdb)”如圖所示:

3、單擊完成按鈕,出現(xiàn)如下對(duì)話框,在數(shù)據(jù)源名中輸入數(shù)據(jù)源的名字“JDBC-ODBC”,單擊選擇按鈕,選擇要操作的數(shù)據(jù)庫“student.mdb”,單擊確定按鈕完成數(shù)據(jù)源的配置。如圖所示:

4、數(shù)據(jù)源配置好了,就可以寫獲取連接的代碼了,如下所示:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:JDBC-ODBC";
Connection con = DriverManager.getConnection(url);
以上的三行代碼就是通過JDBC-ODBC連接Access數(shù)據(jù)庫的關(guān)鍵代碼。這種方式連接可以很方便的記憶連接的url代碼,這是很有用的。后面的代碼就是正常寫了。
方式二:通過數(shù)據(jù)庫所在的絕對(duì)路徑方式連接
上面說過這里的幾種方式都是基于JDBC-ODBC方式。所以加載驅(qū)動(dòng)的Class.forName()中的參數(shù)都是“sun.jdbc.odbc.JdbcOdbcDriver”。對(duì)于這種方式我將student.mdb文件放在了e盤的根目錄下,在使用的時(shí)候,直接寫上該數(shù)據(jù)庫的絕對(duì)路徑就行了。獲取連接的代碼如下所示:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="+"e://student.mdb ";
Connection con = DriverManager.getConnection(url);
對(duì)于這種方式不用配置數(shù)據(jù)源,雖然代碼比較多,但是很好理解的。也是很常用的。
方式三:通過請(qǐng)求來獲取數(shù)據(jù)庫的絕對(duì)路徑方式連接
對(duì)于這種方式,我個(gè)人認(rèn)為很適合在Java Web應(yīng)用中使用,將做好的應(yīng)用給別人,別人也可以使用。我將該數(shù)據(jù)庫文件放在了Web應(yīng)用的根路徑下。那么動(dòng)態(tài)的獲取連接的代碼如下所示:
String path = application.getRealPath("/index.jsp");
path = path.substring(0,path.lastIndexOf("\\"))+"\\";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="+path+"student.mdb ";
Connection con = DriverManager.getConnection(url);
以上便是三種方式獲取連接。接下來便是顯示的代碼了。代碼如下所示:
<%@ page language="java" import="java.util.*,java.sql.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Access</title>
</head>
<body>
<table border="1" width="40%">
<tr bgcolor="gray">
<th>學(xué)號(hào)</th>
<th>姓名</th>
<th>年齡</th>
<th>地址</th>
<th>語文</th>
<th>數(shù)學(xué)</th>
<th>英語</th>
</tr>
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:JDBC-ODBC";
Connection con = DriverManager.getConnection(url);
Statement st = con.createStatement();
String sql = "select * from basic";
ResultSet rs = st.executeQuery(sql);
while(rs.next())
{
%>
<tr>
<td><%=rs.getString(1) %></td>
<td><%=rs.getString(2) %></td>
<td><%=rs.getInt(3) %></td>
<td><%=rs.getString(4) %></td>
<td><%=rs.getInt(5) %></td>
<td><%=rs.getInt(6) %></td>
<td><%=rs.getInt(7) %></td>
</tr>
<%
}
rs.close();
st.close();
con.close();
%>
</table>
</body>
</html>
運(yùn)行JSP結(jié)果如下所示:

當(dāng)將連接改為第二種方式的時(shí)候還是好使的,JSP代碼如下所示:
運(yùn)行JSP結(jié)果如下所示:

當(dāng)將連接改為第三種方式的時(shí)候還是好使的,JSP代碼如下所示:
<%@ page language="java" import="java.util.*,java.sql.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html> <head> <title>JDBC連接Access數(shù)據(jù)庫的第三種方式</title> </head> <body> <table border="1" width="40%"> <tr bgcolor="blue"> <th>學(xué)號(hào)</th> <th>姓名</th> <th>年齡</th> <th>地址</th> <th>語文</th> <th>數(shù)學(xué)</th> <th>英語</th> </tr> <% String path = application.getRealPath("/index.jsp"); path = path.substring(0,path.lastIndexOf("\\"))+"\\"; Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="+path+"student.mdb "; Connection con = DriverManager.getConnection(url); Statement st = con.createStatement(); String sql = "select * from basic"; ResultSet rs = st.executeQuery(sql); while(rs.next()) { %> <tr> <td><%=rs.getString(1) %></td> <td><%=rs.getString(2) %></td> <td><%=rs.getInt(3) %></td> <td><%=rs.getString(4) %></td> <td><%=rs.getInt(5) %></td> <td><%=rs.getInt(6) %></td> <td><%=rs.getInt(7) %></td> </tr> <% } rs.close(); st.close(); con.close(); %> </table> </body></html>運(yùn)行JSP結(jié)果如下所示:

對(duì)于這種方式我的項(xiàng)目的目錄結(jié)構(gòu)如下所示:

Dao dao = new Dao();
dao.init(path);
在dao的init()方法中初始化Connection連接:
String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="+path+"student.mdb ";
Connection con = DriverManager.getConnection(url);

方法二:URL類的getPath()方法

分享:網(wǎng)站圖片路徑的問題:絕對(duì)路徑/虛擬路徑圖片和工程不在一個(gè)盤符下。圖片也不能放到工程下,下面與大家分享下詳細(xì)的解決方法
- jsp response.sendRedirect不跳轉(zhuǎn)的原因分析及解決
- JSP指令元素(page指令/include指令/taglib指令)復(fù)習(xí)整理
- JSP腳本元素和注釋復(fù)習(xí)總結(jié)示例
- JSP FusionCharts Free顯示圖表 具體實(shí)現(xiàn)
- 網(wǎng)頁模板:關(guān)于jsp頁面使用jstl的異常分析
- JSP頁面中文傳遞參數(shù)使用escape編碼
- 基于jsp:included的使用與jsp:param亂碼的解決方法
- JDBC連接Access數(shù)據(jù)庫的幾種方式介紹
- 網(wǎng)站圖片路徑的問題:絕對(duì)路徑/虛擬路徑
- (jsp/html)網(wǎng)頁上嵌入播放器(常用播放器代碼整理)
- jsp下顯示中文文件名及絕對(duì)路徑下的圖片解決方法
- jsp 連接sql server 2008 連接不上的解決方法
JSP教程Rss訂閱編程教程搜索
JSP教程推薦
猜你也喜歡看這些
- Servlet動(dòng)態(tài)網(wǎng)頁技術(shù)詳解
- JSP教程之java讀取文本文件內(nèi)容并獲取文件大小
- JSP和JSF雙劍合并 打造完美Web應(yīng)用
- JSP頁面緩存cache技術(shù)--瀏覽器緩存介紹及實(shí)現(xiàn)方法
- AJAX實(shí)現(xiàn)web頁面級(jí)聯(lián)菜單
- javaweb之web入門基礎(chǔ)
- 加快JDBC中JSP數(shù)據(jù)庫的訪問速度
- 為J2EE定制一個(gè)用來處理錯(cuò)誤的異常處理框架
- J2ME中使用記錄存儲(chǔ)系統(tǒng)RMS存儲(chǔ)信息
- Jsp頁面在URL中傳遞參數(shù)出現(xiàn)亂碼的解決方法
- 相關(guān)鏈接:
- 教程說明:
JSP教程-Java Web項(xiàng)目中連接Access數(shù)據(jù)庫的配置方法
。