婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識(shí)庫(kù) > Java Web項(xiàng)目中連接Access數(shù)據(jù)庫(kù)的配置方法

Java Web項(xiàng)目中連接Access數(shù)據(jù)庫(kù)的配置方法

熱門標(biāo)簽:地圖標(biāo)注專業(yè)和非專業(yè) 汝南縣地圖標(biāo)注app 山東ai外呼電銷機(jī)器人好用嗎 甘肅銷售電銷機(jī)器人公司 四川正規(guī)外呼系統(tǒng)軟件 福建電銷貓機(jī)器人收費(fèi) 湖北地圖標(biāo)注公司 外呼直播語音系統(tǒng) 智能電話機(jī)器人銷售話術(shù)

老師決定期末考試采用access數(shù)據(jù)庫(kù)實(shí)現(xiàn)增刪改查,我認(rèn)為現(xiàn)在的我已經(jīng)沒有問題了,但是以前都是在JSP頁面中連接access數(shù)據(jù)庫(kù),無論是以下的那種方式都進(jìn)行了連接的練習(xí),但是現(xiàn)在我想讓我的項(xiàng)目中的訪問access數(shù)據(jù)庫(kù)的java代碼,封裝到DAO中,在DAO中連接數(shù)據(jù)庫(kù),沒有和Servlet API有任何的關(guān)系。對(duì)于大多數(shù)人都會(huì)優(yōu)先選擇使用ODBC數(shù)據(jù)源的方式或者是使用絕對(duì)路徑的方式連接access數(shù)據(jù)庫(kù),但是我個(gè)人認(rèn)為,這樣做不太好,如果采用這樣的方式,項(xiàng)目做好后,放到他人的服務(wù)器上是無法運(yùn)行的,因?yàn)閿?shù)據(jù)庫(kù)的信息不存在了,而我現(xiàn)在的想法是無論項(xiàng)目放那一臺(tái)支持jdbc-odbc機(jī)器的服務(wù)器上都可以連接數(shù)據(jù)庫(kù),并運(yùn)行項(xiàng)目,所以要完成這樣的操作,只有在讓access數(shù)據(jù)庫(kù)的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ù)庫(kù)吧!

例如有如下的Access數(shù)據(jù)庫(kù)student,表basic,以及6條記錄,現(xiàn)在通過幾種方式在Jsp中將他們的數(shù)據(jù)顯示出來。如圖所示:

對(duì)于幾種連接Access數(shù)據(jù)庫(kù)的方式,基本上都是基于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ù)庫(kù)的驅(qū)動(dòng)程序“Microsoft Access Driver(*.mdb)”如圖所示:

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

4、數(shù)據(jù)源配置好了,就可以寫獲取連接的代碼了,如下所示:

復(fù)制代碼 代碼如下:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:JDBC-ODBC";
Connection con = DriverManager.getConnection(url);


以上的三行代碼就是通過JDBC-ODBC連接Access數(shù)據(jù)庫(kù)的關(guān)鍵代碼。這種方式連接可以很方便的記憶連接的url代碼,這是很有用的。后面的代碼就是正常寫了。

方式二:通過數(shù)據(jù)庫(kù)所在的絕對(duì)路徑方式連接

上面說過這里的幾種方式都是基于JDBC-ODBC方式。所以加載驅(qū)動(dòng)的Class.forName()中的參數(shù)都是“sun.jdbc.odbc.JdbcOdbcDriver”。對(duì)于這種方式我將student.mdb文件放在了e盤的根目錄下,在使用的時(shí)候,直接寫上該數(shù)據(jù)庫(kù)的絕對(duì)路徑就行了。獲取連接的代碼如下所示:

復(fù)制代碼 代碼如下:

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ù)庫(kù)的絕對(duì)路徑方式連接

對(duì)于這種方式,我個(gè)人認(rèn)為很適合在Java Web應(yīng)用中使用,將做好的應(yīng)用給別人,別人也可以使用。我將該數(shù)據(jù)庫(kù)文件放在了Web應(yīng)用的根路徑下。那么動(dòng)態(tài)的獲取連接的代碼如下所示:

復(fù)制代碼 代碼如下:

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);


以上便是三種方式獲取連接。接下來便是顯示的代碼了。代碼如下所示:

復(fù)制代碼 代碼如下:

%@ 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代碼如下所示:

運(yùn)行JSP結(jié)果如下所示:

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

第三種方式正是現(xiàn)在要用的方式,可以在Java類中,訪問數(shù)據(jù)庫(kù)了。
首先將mdb文件放入到WebRoot下面,當(dāng)點(diǎn)擊超鏈接的時(shí)候,將信息傳給Servlet,在Servlet中寫上如下的語句:
String path = request.getServletContext().getRealPath("/");
Dao dao = new Dao();
dao.init(path);
在dao的init()方法中初始化Connection連接:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="+path+"student.mdb ";
Connection con = DriverManager.getConnection(url);
這樣在dao中就可以根據(jù)傳過來的path找到數(shù)據(jù)庫(kù)文件所在的路徑了。并成功的連接到數(shù)據(jù)庫(kù)了,實(shí)現(xiàn)了分層理念。
但是這樣出現(xiàn)了一個(gè)問題,如果放在WebRoot下,別人知道數(shù)據(jù)庫(kù)的位置,不就可以訪問了嗎?
為此我想了好久,既然是在Java類中訪問數(shù)據(jù)庫(kù),那么能不能將mdb文件放在src下邊呢,答案是可以的。這樣在MyEclipse或Eclipse中,就將該文件復(fù)制到了Web項(xiàng)目的WEB-INF下的classes根路徑下,不就能訪問了,于是我的URL代碼變成了這樣:
String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=student.mdb ";
但是結(jié)果失敗了,沒有找到文件,但后來將該文件放到“項(xiàng)目”下,就好使了,但是這樣一旦給別人,就又不行了,所以還得放到src下,只有這樣才會(huì)放到WebRoot或WebContent下,才會(huì)放到classes下,才能被java類所訪問,才能給別人項(xiàng)目就能運(yùn)行。但是如何才能找到classes目錄下的數(shù)據(jù)庫(kù)文件呢。一直在找某個(gè)方法,直到找到了如下的方法:
方法一:Class類的getResource()方法或者是ClassLoader類的

方法二:URL類的getPath()方法
通過Class類的getResource()方法查找當(dāng)前類所在的目錄,這里dao類在com.student.dao包下,那么該方法返回的就是該類的路徑,如果參數(shù)是“/”的化,返回的就是classes的根目錄,這樣就可以得到classes下的數(shù)據(jù)庫(kù)mdb文件的所在路徑。再通過URL類的getPath()方法得到字符串類型的文件路徑在服務(wù)器上的真實(shí)路徑。
代碼如下所示:
String path = this.getClass().getResource("/").getPath().replaceAll("%20"," ");//replaceAll方法是為了解決路徑中含有空格字符的問題
path = path.substring(1,path.length());//對(duì)路徑進(jìn)行截取,獲得的路徑前邊會(huì)多加一個(gè)杠Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="+path+"student.mdb";
con = DriverManager.getConnection(url);
將以上的代碼封裝DAO中,就可以訪問到數(shù)據(jù)庫(kù)了。就可以在Java Web項(xiàng)目中,使用Access數(shù)據(jù)庫(kù)實(shí)現(xiàn)MVC設(shè)計(jì)模式,并添加DAO和VO了。對(duì)于使用Servlet API將mdb文件的路徑傳給dao是一種方式,使用dao封裝Access也是一種方式,有時(shí)為了方便可以將mdb文件放到WebRoot下,通過JSP或者是Servlet將數(shù)據(jù)庫(kù)文件的路徑傳給dao。我覺的Access數(shù)據(jù)庫(kù)這一點(diǎn)比較好,可以將數(shù)據(jù)庫(kù)和項(xiàng)目一起移動(dòng)。通關(guān)這兩種方式可以再任何的機(jī)器上運(yùn)行。
目前,我所知道的就是這么做,我也認(rèn)為這是比較好的作法。用Java語言連接數(shù)據(jù)庫(kù),將數(shù)據(jù)庫(kù)文件放在和類路徑相同的目錄下是很好的作法。如果還有其他的辦法,希望大家提出來。
您可能感興趣的文章:
  • Java I/O深入學(xué)習(xí)之File和RandomAccessFile
  • Java設(shè)置Access-Control-Allow-Origin允許多域名訪問的實(shí)現(xiàn)方法
  • java連接Access數(shù)據(jù)庫(kù)的方法
  • Java RandomAccessFile 指定位置實(shí)現(xiàn)文件讀取與寫入
  • Java接口RandomAccess全面了解
  • java微信公眾號(hào)開發(fā)第一步 公眾號(hào)接入和access_token管理
  • Java程序生成Access文件代碼實(shí)例

標(biāo)簽:昌都 黔東 梅州 吳忠 臨沂 白銀 南充 肇慶

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Java Web項(xiàng)目中連接Access數(shù)據(jù)庫(kù)的配置方法》,本文關(guān)鍵詞  Java,Web,項(xiàng),目中,連接,Access,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Java Web項(xiàng)目中連接Access數(shù)據(jù)庫(kù)的配置方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于Java Web項(xiàng)目中連接Access數(shù)據(jù)庫(kù)的配置方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲一区在线观看网站| 在线电影院国产精品| 亚洲一区欧美一区| 久久综合色鬼综合色| 欧美一区二区视频免费观看| 91亚洲资源网| 波波电影院一区二区三区| 蜜桃av一区二区三区| 亚洲一级二级三级在线免费观看| 国产精品久久久久久亚洲伦| 91精品国产全国免费观看 | 成人自拍视频在线观看| 国产一区二区在线电影| 精品中文字幕一区二区小辣椒| 日韩中文字幕一区二区三区| 日本不卡在线视频| 老司机精品视频一区二区三区| 天天操天天色综合| 男男gaygay亚洲| 韩国精品久久久| 极品销魂美女一区二区三区| 久久国产夜色精品鲁鲁99| 精品一区二区三区不卡| 国内精品久久久久影院色| 美国毛片一区二区| 国产乱码精品一区二区三区忘忧草 | 不卡影院免费观看| 99精品视频在线观看免费| 色综合天天做天天爱| 欧美日韩在线播| 日韩精品一区二区在线观看| 精品国产凹凸成av人网站| 久久丝袜美腿综合| 自拍偷拍欧美精品| 亚洲国产精品综合小说图片区| 亚洲成人av在线电影| 捆绑变态av一区二区三区| 国内精品免费**视频| 成人在线视频首页| 日本高清无吗v一区| 欧美丰满嫩嫩电影| 国产欧美久久久精品影院| 亚洲精品一卡二卡| 视频一区二区不卡| www.久久久久久久久| 欧美精品日韩一区| 国产亚洲成年网址在线观看| 一区二区三区精品视频在线| 日本美女视频一区二区| 福利电影一区二区| 3751色影院一区二区三区| 欧美日韩在线直播| 1区2区3区精品视频| 精品国产凹凸成av人导航| 有码一区二区三区| 国产精品一区不卡| 亚洲蜜桃精久久久久久久| 极品少妇一区二区| 亚洲乱码国产乱码精品精的特点 | 91久久久免费一区二区| 92精品国产成人观看免费| 91精品国产综合久久精品 | 国产精品拍天天在线| 亚洲地区一二三色| 蜜臀av性久久久久蜜臀aⅴ四虎 | 亚洲综合丝袜美腿| 玉足女爽爽91| 国产一区二区不卡在线| 欧美一级高清片| 国产精品久久久久影院亚瑟| 国产乱理伦片在线观看夜一区 | 91久久精品国产91性色tv | 国产亚洲精品超碰| 午夜欧美电影在线观看| 国产剧情av麻豆香蕉精品| 欧美一区二区免费视频| 亚洲一区二区视频在线观看| 欧美在线观看视频一区二区| 国产综合久久久久久久久久久久 | 国产精品美女一区二区| 国产精品入口麻豆原神| 欧美吞精做爰啪啪高潮| 久久精品一区二区三区四区| 精品一区二区三区在线观看| 精品久久久久久最新网址| 久久电影网站中文字幕| 国产视频一区不卡| 久久国产精品99久久人人澡| 色婷婷综合久久久中文一区二区| 蜜芽一区二区三区| 久久综合九色综合97_久久久| 免费在线观看一区| 久久久99精品免费观看不卡| eeuss影院一区二区三区| 一级特黄大欧美久久久| 欧美性色欧美a在线播放| 亚洲成人av一区| 精品国产一二三区| 成人av手机在线观看| 亚洲午夜视频在线| 日韩午夜三级在线| 91在线视频免费观看| 午夜日韩在线电影| 国产精品区一区二区三| 欧美日韩高清在线| 成人性视频网站| 日韩中文欧美在线| 国产精品久久久久四虎| 91精品国产综合久久小美女| 成人影视亚洲图片在线| 亚洲一区二区四区蜜桃| 久久精品在线免费观看| 欧美性猛交一区二区三区精品| 国产伦精品一区二区三区在线观看| 亚洲欧美国产毛片在线| 久久色.com| 欧美日本国产一区| www.成人网.com| 国产麻豆视频一区| 日韩中文字幕av电影| 亚洲一区二区三区四区在线免费观看| 亚洲精品在线一区二区| 欧美人妖巨大在线| 色综合视频在线观看| 国产一二三精品| 奇米777欧美一区二区| 亚洲黄色免费电影| 国产欧美日韩另类一区| 日韩欧美中文字幕精品| 欧美老年两性高潮| 99精品视频在线观看| 国产精品香蕉一区二区三区| 另类小说色综合网站| 五月天激情综合| 亚洲视频免费在线观看| 国产色一区二区| 中文字幕在线播放不卡一区| 日韩精品中文字幕一区二区三区 | 成人黄色电影在线| 亚洲国产欧美在线| 亚洲图片一区二区| 专区另类欧美日韩| 国产欧美久久久精品影院| 欧美一区二区私人影院日本| 色婷婷av一区二区三区之一色屋| 麻豆91在线播放免费| 日韩avvvv在线播放| 久久精品国产澳门| 亚洲va国产天堂va久久en| 欧美日韩三级在线| 久久66热偷产精品| 亚洲一区二区三区四区在线 | 亚洲va欧美va天堂v国产综合| 欧美日韩成人在线| 95精品视频在线| 欧美性生交片4| 国产精品视频第一区| aa级大片欧美| 欧美另类一区二区三区| 久久精品视频在线免费观看| 91成人在线免费观看| 免费高清成人在线| 亚洲mv在线观看| 国产精品久久久久久久久免费丝袜| 在线不卡中文字幕播放| av网站免费线看精品| 国产精品美女久久久久久久网站| 国产激情精品久久久第一区二区| 欧美三级视频在线观看| 久久97超碰国产精品超碰| 丁香六月综合激情| 播五月开心婷婷综合| 欧美视频一区二| 2017欧美狠狠色| 亚洲日本在线a| 日韩电影网1区2区| 国产一区二区导航在线播放| 91美女片黄在线观看91美女| 91精品国产福利在线观看| 久久久激情视频| 亚洲成人免费看| 粉嫩嫩av羞羞动漫久久久| 欧美日高清视频| 久久美女艺术照精彩视频福利播放| 亚洲精品国产精华液| 韩国av一区二区三区| 欧美午夜视频网站| 久久精品人人做人人综合 | 国产精品亚洲一区二区三区妖精| 国产91在线看| 日韩一区和二区| 亚洲免费资源在线播放| 国内精品嫩模私拍在线| 日本高清免费不卡视频| 欧美韩国日本综合| 极品少妇一区二区三区精品视频 | 色久综合一二码| 日韩视频免费观看高清完整版在线观看 | 欧美三级中文字| 精品处破学生在线二十三|