2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p><b>  本科畢業(yè)論文</b></p><p>  (科研訓(xùn)練、畢業(yè)設(shè)計)</p><p>  題 目:基于手機的旅游路線查詢系統(tǒng)</p><p>  ---數(shù)據(jù)庫及查詢接口設(shè)計</p><p><b>  姓 名:</b></p><p>  

2、學(xué) 院:軟件學(xué)院</p><p><b>  系:軟件學(xué)院</b></p><p>  專 業(yè):軟件工程</p><p>  年 級:級轉(zhuǎn)專業(yè)</p><p><b>  學(xué) 號:</b></p><p>  指導(dǎo)教師(校內(nèi)): 職稱:

3、副教授</p><p>  年 月 日</p><p>  基于手機的旅游路線查詢系統(tǒng)</p><p>  ---數(shù)據(jù)庫及查詢接口設(shè)計</p><p>  [引言] 本文通過程序段、圖表、文字,對手機查詢旅游路線所需的數(shù)據(jù)庫進行了描述,剖析了這個程序的流程概況:后臺使用Microsoft Access作為數(shù)據(jù)源,前臺使用WAP語

4、言來對數(shù)據(jù)庫進行訪問操作。JAVA語言成為數(shù)據(jù)操作的載體,進行數(shù)據(jù)庫數(shù)據(jù)的調(diào)用、添加、修改。由于只是供實驗用的小程序,選擇用Tomcat5.0做服務(wù)器,不支持太多用戶同時訪問,數(shù)據(jù)庫則采用小型的Microsoft Access。數(shù)據(jù)庫的取用采用節(jié)約資源的原則,每次取用完,自動將內(nèi)存回收,提高再次訪問的速度。數(shù)據(jù)庫接口的提供采用了多層結(jié)構(gòu),將數(shù)據(jù)庫連接、關(guān)閉封裝在底層的類中,上層的類只要用sql語句,就能返回結(jié)果。并以此為基礎(chǔ),提供旅游路

5、線查詢系統(tǒng)所需要的各種接口及對數(shù)據(jù)庫管理的各種接口。有的功能由于數(shù)據(jù)的原因或?qū)嵱眯圆淮?,只提供接口,功能可根?jù)需要進行必要的擴展。</p><p>  [關(guān)鍵詞] 數(shù)據(jù)庫連接池 Servlet Java Server Page</p><p>  Tourism Line Query System By MobilePhone</p><p>  —

6、Design of database and query interface</p><p>  [Abstract] The paper describe the database which are needed by the mobile phone tourism line query by programs , graphs and characters .It analyzed the general

7、 situation of this program .The Microsoft Access is used as the database resource in the background , and then the on the stage we use WAP language to visit the database . The JAVA language is used as the carrier of the

8、data operation.It can be used for loading,adding changing the database . For the reason that the programs is only a small</p><p>  [KeyWord] Connection Pool Servlet Java Server Page</p><p&

9、gt;<b>  目錄</b></p><p>  第一章 引 言2</p><p>  第二章 數(shù)據(jù)庫分析和建立2</p><p>  §2.1系統(tǒng)功能描述2</p><p>  §2.2實體關(guān)系3</p><p>  第三章 數(shù)據(jù)庫連接池的實現(xiàn)5</

10、p><p>  §3.1問題的描述5</p><p>  §3.2問題的分析和解決方案5</p><p>  §3.3連接池的具體實現(xiàn)7</p><p>  第四章 接口的實現(xiàn)8</p><p>  §4.1數(shù)據(jù)操作結(jié)構(gòu)描述8</p><p>  &

11、#167;4.2查詢接口的具體描述9</p><p>  §4.2.1 OperateData類9</p><p>  §4.2.2 Service類9</p><p>  §4.2.3 Service_en類12</p><p>  §4.3管理接口的實現(xiàn)14</p><

12、p>  §4.3.1 Admin類14</p><p>  §4.3.2 Interest類16</p><p><b>  致 謝 語24</b></p><p><b>  參考文獻25</b></p><p><b>  附錄25</b>

13、;</p><p>  第一章 引 言</p><p>  隨著改革開放的深入,20年來,中國的經(jīng)濟有了突飛猛進的發(fā)展,隨之而來的是人們的生活水平的迅速提高,各種通訊工具,高級生活用戶漸漸步入了百姓家,汽車、移動電話等原來所謂的奢侈品已經(jīng)不再是大部分人的夢想。中國</p><p>  移動用戶超過2億是一個非常具有里程碑意義的成果。并隨著經(jīng)濟建設(shè),國家更多的

14、把重心從相對耗能耗資源的工業(yè),轉(zhuǎn)移到綠色環(huán)保的旅游產(chǎn)業(yè)。對于我們這個地大物博的泱泱大國,旅游產(chǎn)業(yè)大有所為。越來越多的人們把節(jié)假日交給了旅游,這種休閑方式漸漸被大多數(shù)人所認同。為了給人們外地方便地查詢到景點及其它旅游信息,我們小組設(shè)計了可以通過手機GPRS通過WAP網(wǎng)頁訪問的旅游路線查詢系統(tǒng)。該系統(tǒng)數(shù)據(jù)庫包含了旅游路線的查詢,景點及其相關(guān)旅游服務(wù)配套設(shè)施的查詢服務(wù),基本涵蓋了用戶對旅游方面的需要。前臺的數(shù)據(jù)查詢及后臺的數(shù)據(jù)庫管理。本文的主

15、要目的是介紹數(shù)據(jù)操作,及邏輯接口的介紹。詳細介紹了從數(shù)據(jù)庫設(shè)計,建表到數(shù)據(jù)庫實現(xiàn)各種功能的SQL操作。并提供了擴展功能的接口,方便實現(xiàn)功能的擴充。</p><p>  第二章 數(shù)據(jù)庫分析和建立</p><p><b>  2.1系統(tǒng)功能描述</b></p><p>  旅游路線查詢系統(tǒng)分為前臺應(yīng)用和基于web的后臺數(shù)據(jù)管理和維護兩大部分。前臺應(yīng)

16、用提供的功能大致分為:按城市路線查詢、按景點查詢;后臺管理與維護包括對景點、路線的數(shù)據(jù)操作,對管理員密碼的修改</p><p><b>  。</b></p><p><b>  2.2實體關(guān)系</b></p><p><b>  圖1 實體關(guān)系圖</b></p><p>&

17、lt;b>  圖2 實體關(guān)系圖</b></p><p>  根據(jù)功能的需求我們設(shè)計數(shù)據(jù)庫</p><p>  2.3 數(shù)據(jù)庫實現(xiàn) </p><p><b>  根據(jù)實體建表</b></p><p>  City 城市表,描述的是城市的屬性, 詳細內(nèi)容見表1</p><p&g

18、t;  City_num 表示站點的ID值</p><p>  City_name表示中文城市名字</p><p><b>  表1 城市信息表</b></p><p>  Interest 景點表,描述的是景點的屬性,詳細內(nèi)容見表2</p><p>  Interest_name 表示景點的名字</p&

19、gt;<p>  Interest_num 表示景點的代號ID</p><p>  Line_name 表示旅游路線的名字</p><p>  Line_num 表示旅游路線的名字</p><p>  City_name 表示城市的名字</p><p>  表2 景點數(shù)據(jù)結(jié)構(gòu)表</p>&l

20、t;p>  Interest_introduce 景點介紹表,描述的是景點的詳細介紹,詳細內(nèi)容見表3</p><p>  Interest_name 表示景點的名字</p><p>  Interest_num 表示景點的代號ID</p><p>  Interest_introduce 表示景點的介紹</p>

21、<p>  表3 景點介紹關(guān)系表</p><p>  Line 旅游路線表,描述的是旅游路線的屬性,詳細內(nèi)容見表4</p><p>  Id 表示旅游踐線所對應(yīng)的的標(biāo)號</p><p>  Line_num 表示旅游路線的所對應(yīng)的代號ID</p><p>  Line_name 表示旅游路

22、線的名字</p><p>  City_name 表示城市的名字</p><p>  表4 旅游路線數(shù)據(jù)表</p><p>  Manager 后臺管理登錄信息表,描述的是后臺數(shù)據(jù)庫管理登錄的密碼信息,詳細內(nèi)容見</p><p>  User 表示后臺數(shù)據(jù)庫管理的用戶名紀(jì)錄的名字</p>&l

23、t;p>  Password 表示后臺數(shù)據(jù)庫管理的用戶名所對應(yīng)的密碼記錄</p><p>  表5 管理員登錄密碼表</p><p>  第三章 數(shù)據(jù)庫連接池的實現(xiàn)</p><p><b>  3.1問題的描述</b></p><p>  在使用開發(fā)基于數(shù)據(jù)庫的WEB程序時,傳統(tǒng)的思維基本是按以下步驟

24、:  1. 在主程序中直接建立數(shù)據(jù)庫連接</p><p>  2. 進行SQL操作,取出數(shù)據(jù)</p><p>  3. 斷開數(shù)據(jù)庫連接</p><p>  使用這種思路進行開發(fā),存在很多問題。由于我們要為每一次網(wǎng)頁請求建立一次數(shù)據(jù)庫連接。如果僅僅是同時有一次或幾次的操作來說,也許你感覺不到系統(tǒng)開銷的時間。但是,針對網(wǎng)絡(luò)程序來講,即使是在一個短短的時間段內(nèi),對服務(wù)器

25、操作的請求遠不止一兩次,而是根據(jù)網(wǎng)站的知名度,成幾何級數(shù)增長。好多網(wǎng)站就是由于對請求的用戶數(shù)量估計不足而造成服務(wù)器的癱瘓,所謂的網(wǎng)絡(luò)炸彈其實就是利用這種原理,用超量的訪問請求來使服務(wù)器忙不過來。在這種情況下,系統(tǒng)開銷是非常大的。事實上,在一個針對數(shù)據(jù)庫的WEB系統(tǒng)中,建立數(shù)據(jù)庫連接的操作將用到系統(tǒng)開銷的很大一部分。這就是所謂的網(wǎng)站速度瓶頸所在,所以,這個問題一定要在設(shè)計之初考慮到。</p><p>  其次,使用

26、傳統(tǒng)的思路,你必須去管理每一個連接,確保他們能被正確關(guān)閉,如果出現(xiàn)程序異常而導(dǎo)致某些連接未能關(guān)閉,將導(dǎo)致數(shù)據(jù)庫系統(tǒng)中的內(nèi)存回收不回來,我們將不得不重啟數(shù)據(jù)庫,而這在當(dāng)今網(wǎng)絡(luò)服務(wù)實時性的苛刻要求下,是難以接受的結(jié)果。</p><p>  3.2問題的分析和解決方案</p><p>  第一個思路,如果我們采用一個全局的Connection對象,創(chuàng)建后就不關(guān)閉它,以后程序就一直使用它,這樣就不

27、存在每次都必須創(chuàng)建及關(guān)閉連接的問題了。但是,考慮問題的完整性,同一個連接使用次數(shù)過多,將會導(dǎo)致連接的不穩(wěn)定,進而會導(dǎo)致WEB SERVER的頻頻重啟。因而,這種方法也不可取。</p><p>  基于高級操作系統(tǒng)對內(nèi)存分配的幾種模型:RR時間片,先到先服務(wù),最短先服務(wù),優(yōu)先級的模式,類似的可以用在我們對解決這個問題的實現(xiàn)上。所以,我們可以使用連接池技術(shù)來解決上述問題。首先,介紹一下連接池技術(shù)的基本原理。顧名思義,

28、連接池最基本的思想就是預(yù)先建立一些連接放置于內(nèi)存對象中以備使用:如圖3</p><p>  書館 圖3 關(guān)系圖</p><p>  當(dāng)程序中需要建立數(shù)據(jù)庫連接時,只須從內(nèi)存中取一個來用而不用新建。同樣,使用完畢后,只需放回內(nèi)存即可。而連接的建立、斷開都由連接池自身來管理。同時,我們還可以通過設(shè)置連接池的參數(shù)來調(diào)整連接池中的連接

29、數(shù)、每個連接的最大使用次數(shù)等等。通過使用連接池,將大大提高程序效率,同時,我們可以通過其自身的管理機制來監(jiān)視數(shù)據(jù)庫連接的數(shù)量、使用情況等。</p><p>  建立連接池第一步,就是要建立一個靜態(tài)的連接池,所謂靜態(tài)是指,池中的連接是在系統(tǒng)初始化時就分配好的,并且不能夠隨意關(guān)閉的。Java中給我們提供很多容器類可以方便的用來構(gòu)建連接池,如:Vector、Stack等。在系統(tǒng)初始化時,根據(jù)配置創(chuàng)建連接并放置在連接池中

30、,以后所使用的連接都是從該連接池中獲取的,這樣就可以避免連接隨意建立、關(guān)閉造成的開銷(當(dāng)然,我們沒有辦法避免Java的Garbage Collection帶來的開銷)。</p><p>  第二步 分配、釋放思路。有了這個連接池,下面我們就可以提供一套自定義的分配、釋放步驟。當(dāng)用戶發(fā)出數(shù)據(jù)庫連接請求的時候,程序首先看連接池中是否有空閑連接,這里的空閑是指,目前沒有分配出去的連接。如果存在空閑連接則把連接分配給客戶

31、,并作相應(yīng)處理,具體處理策略,在關(guān)鍵議題中會詳述,主要的處理策略就是標(biāo)記該連接為已分配。若連接池中沒有空閑連接,就在已經(jīng)分配出去的連接中,尋找一個合適的連接給客戶(選擇策略會在關(guān)鍵議題中詳述),此時該連接在多個客戶間復(fù)用。當(dāng)客戶釋放數(shù)據(jù)庫連接時,可以根據(jù)該連接是否被復(fù)用,進行不同的處理。如果連接沒有使用者,就放入到連接池中,而不是被關(guān)閉。這樣就可以在一個合理的復(fù)用次數(shù)下,保證資源的合理利用,避免頻率的數(shù)據(jù)庫開關(guān)的巨大開銷浪費。至于配置數(shù)

32、據(jù)庫連接池中到底要放置多少個連接,連接耗盡后該如何處理的問題,可以經(jīng)過實驗,根據(jù)用戶量級的范圍,測試最佳效能的參數(shù)。本connection是采用的參數(shù)為3,針對不同需要的網(wǎng)站,可以靈活修改參量。以求達到最佳效能。</p><p>  3.3連接池的具體實現(xiàn)</p><p>  圖4是我們實現(xiàn)連接池的類</p><p><b>  圖4 類圖</b&

33、gt;</p><p>  其中openDB()方法是我們建立連接池的第一步,用來預(yù)先打開數(shù)個數(shù)據(jù)庫連接</p><p>  getConnection()方法是我們獲取一個連接的方法</p><p>  returnConnection()方法是將一個連接返回給連接池</p><p>  管理連接池的策略是取出一個連接時,將這個連接放到bo

34、undConnect 隊列,當(dāng)返回連接時將這個連接從boundConnect 放入freeConnect 隊列,當(dāng)連接全部取出時用戶還想繼續(xù)取連接,用戶只好等待,直到其他用戶將連接返回給連接池時用戶才能取出連接。</p><p>  另外我們寫了一個ConnServlet 配置在tomcat服務(wù)器上,在服務(wù)器起動時就起動連接池(運行init()方法),服務(wù)器關(guān)閉時(運行destroy()方法)就關(guān)閉連接池。運行g(shù)

35、etConnection()方法可以調(diào)用連接池的getConnection方法獲得數(shù)據(jù)庫連接。運行returnConnection()方法可以調(diào)用連接池的returnConnection()方法回收連接。</p><p><b>  第四章 接口的實現(xiàn)</b></p><p>  4.1數(shù)據(jù)操作結(jié)構(gòu)描述</p><p>  數(shù)據(jù)操作類的層次結(jié)構(gòu)

36、圖如圖5:</p><p><b>  圖5 系統(tǒng)結(jié)構(gòu)圖</b></p><p>  ConnPool 類是數(shù)據(jù)庫連接池</p><p>  ConnServlet 是一個servlet 的子類,在服務(wù)器起動時起動連接池,在服務(wù)器關(guān)閉時關(guān)閉連接池</p><p>  OperateData 類是連接封裝類,向ConnS

37、ervlet 取得數(shù)據(jù)庫連接,并接收上層用戶傳來的sql語句,將結(jié)果返回給上層</p><p>  Service_en 是提供英文站點查詢服務(wù)接口的類</p><p>  Service 是提供中文站點查詢服務(wù)接口的類</p><p>  Admin 提供用戶管理的類</p><p>  City 提供城市管理的類&l

38、t;/p><p>  Interest 提供景點管理的類</p><p>  Line 提供線路管理的類</p><p>  Login 提供管理員密碼的管理的類</p><p>  §4.2查詢接口的具體描述</p><p>  4.2.1 OperateData類</p>

39、<p><b>  圖6 類結(jié)構(gòu)圖</b></p><p>  圖6是OperateData類,executeSQL方法是用來執(zhí)行SQL查詢操作;execUpdate是用來執(zhí)行SQL 修改操作;closeConnection() 是將數(shù)據(jù)庫連接返回給連接池。類被放到database中。</p><p>  4.2.2 Service類</p>

40、<p><b>  圖7 類結(jié)構(gòu)圖</b></p><p>  圖7是Service 的類結(jié)構(gòu)圖,從圖中可以看出這個類提供了哪些接口,下面我們就來具體描述這些接口。</p><p>  database.util </p><p>  Class Service</p><p>  public clas

41、s Service </p><p>  public ResultSet LineList(String cityname){</p><p>  String sql="select line_name from line where city_name='"+cityname.trim()+"'";</p><

42、;p>  ResultSet rs=operateData.execSQL(sql);</p><p>  return rs;}</p><p>  該類用到的sql語言是select line_name from line where city_name='"+cityname.trim()+"'</p><p>  根

43、據(jù)城市名,查找所有的城市經(jīng)由的旅游路線,并列出表來。</p><p>  提供城市查詢 傳入的參數(shù)city_num表示城市名,返回結(jié)果是一個記錄集</p><p>  如果為空表示查詢出錯或沒有結(jié)果 如果不為空則記錄集中的字段為city_num(城市路線代號)</p><p><b>  示例輸入“廈門”</b></p><

44、p><b>  示例返回結(jié)果:</b></p><p>  廈門一日游1(路線名)</p><p>  程序中用到的sql語句 select interest_introduce from interest_introduce where interest_name='"+interestname.trim()+"' 根據(jù)用戶

45、選擇的景點名,調(diào)用數(shù)據(jù)庫,調(diào)出景點對應(yīng)的景點介紹。并返回一個值。</p><p>  試?yán)?點擊“鼓浪嶼”</p><p><b>  結(jié)果示例:</b></p><p><b>  鼓浪嶼:</b></p><p>  鼓浪嶼位于廈門島的西南面,面積僅1.78平方公里,常住居民2.3萬人,與廈

46、門隔一條幾百米寬的廈鼓海峽,當(dāng)?shù)厝肆?xí)慣稱之為鷺江。乘渡輪不過十來分鐘及可到。 島上氣候宜人,樹木繁茂,鳥語花香,空氣清新,無車馬喧囂,礁石、峭壁、丘峰相映成趣,各式建筑錯落點綴,素有“海上花園”之譽,日光巖奇石突起,是鼓浪嶼也是廈門的象征,有“未到日光巖等于沒到過廈門”之說。同時,鼓浪嶼還有“萬國建筑博覽”、“音樂之島”和“鋼琴之島”的稱譽,還是步行島,全島禁行機動車,這也成為該島的一大特色。</p><p>

47、  即可簡單的了解到某處景點的特點。</p><p><b>  getLine</b></p><p>  public ResultSet getLine(String interestname){</p><p>  String sql="select line_name from interest where interes

48、t_name='"+interestname.trim()+"'";</p><p>  ResultSet rs=operateData.execSQL(sql);</p><p>  Return rs; }</p><p>  提供旅游景點查詢,根據(jù)所選擇的旅游路線,查找線路經(jīng)由的旅游景點,并列出表。</p

49、><p>  類所用到的sql語言是: select line_name from interest where interest_name='"+interestname.trim()+"'</p><p>  實例: 點擊廈門一日游1</p><p><b>  結(jié)果:</b></p><

50、p><b>  南普陀</b></p><p><b>  湖里山</b></p><p><b>  海上看金門</b></p><p><b>  鼓浪嶼</b></p><p><b>  日光巖</b></p>

51、;<p><b>  鄭成功紀(jì)念館</b></p><p>  closeConnection </p><p>  public void closeConnection()</p><p>  使用完連接后,將連接返回給連接池</p><p>  4.2.3 Service_en類</p>

52、<p><b>  圖 8 類結(jié)構(gòu)圖</b></p><p>  圖8是Service_en 的類結(jié)構(gòu)圖,從圖中可以看出這個類提供了哪些接口,下面我們就來具體描述這些接口。</p><p>  database.util </p><p>  Class Service_en</p><p>  publi

53、c class Service_en </p><p>  public ResultSet LineList(String cityname){</p><p>  String sql="select line_name from line_en where city_name='"+cityname.trim()+"'";<

54、;/p><p>  ResultSet rs=operateData.execSQL(sql);</p><p>  return rs;}</p><p>  該類用到的sql語言是select line_name from line_en where city_name='"+cityname.trim()+"'</p>

55、;<p>  根據(jù)城市名,查找所有的城市經(jīng)由的旅游路線,并列出表來。</p><p>  提供城市查詢 傳入的參數(shù)city_num表示城市名,返回結(jié)果是一個記錄集</p><p>  如果為空表示查詢出錯或沒有結(jié)果 如果不為空則記錄集中的字段為city_num(城市路線代號)</p><p>  示例輸入“peking”</p><

56、p><b>  示例返回結(jié)果:</b></p><p>  peking one day 1(路線名)</p><p>  peking one day 2</p><p>  peking one day 3</p><p>  Tourism getIntro</p><p>  pub

57、lic ResultSet getIntro(String interestname){</p><p>  String sql="select interest_introduce_en from interest_introduce_en where interest_name='"+interestname.trim()+"'";</p>

58、<p>  ResultSet rs=operateData.execSQL(sql);</p><p>  return rs;</p><p><b>  }</b></p><p>  程序中用到的sql語句 select interest_introduce from interest_introduce_en where

59、 interest_name='"+interestname.trim()+"' 根據(jù)用戶選擇的景點名,調(diào)用數(shù)據(jù)庫,調(diào)出景點對應(yīng)的景點介紹。并返回一個值。</p><p>  試?yán)?點擊“South Temple”</p><p><b>  結(jié)果示例:</b></p><p>  South Templ

60、e:</p><p>  The South Temple is at the foot of the Wulao Hill in XiaMen. It began at Tang Dynasty.The famous scenic spot of Buddhism in MinNan.It contains TianWang palace,DaXiong palace.The DaBei palace is f

61、ull of skillful architecture。Everyday,the temple is full of fans believe in Buddhism.</p><p>  即可簡單的了解到南普陀這個景區(qū)的特點。</p><p><b>  getLine</b></p><p>  public ResultSet getL

62、ine(String interestname){</p><p>  String sql="select line_name from interest where interest_name='"+interestname.trim()+"'";</p><p>  ResultSet rs=operateData.execSQ

63、L(sql);</p><p>  Return rs; }</p><p>  提供旅游景點查詢,根據(jù)所選擇的旅游路線,查找線路經(jīng)由的旅游景點,并列出表。</p><p>  類所用到的sql語言是: select line_name from interest where interest_name='"+interestname.trim(

64、)+"'</p><p>  實例: 點擊: xiamen oneday one</p><p><b>  結(jié)果:</b></p><p>  South temple</p><p><b>  hulishan</b></p><p>  haisha

65、ngkanjinmen</p><p>  Gulang Islands</p><p>  Riguang yan</p><p>  zhengchenggongjinianguan</p><p>  closeConnection </p><p>  public void closeConnection()

66、</p><p>  使用完連接后,將連接返回給連接池</p><p>  4.3管理接口的實現(xiàn)</p><p>  4.3.1 Admin類</p><p><b>  圖 9 類結(jié)構(gòu)圖</b></p><p>  圖9是Admin 的類結(jié)構(gòu)圖,從圖中可以看出這個類提供了哪些接口,下面我們就來

67、具體描述這些接口。</p><p>  database.util </p><p>  Class Admin</p><p>  public class Admin </p><p>  checkUserPwd </p><p>  public boolean checkUserPwd(java.lang.S

68、tring username,</p><p>  java.lang.String userpwd)</p><p>  檢測用戶名和密碼是否正確 </p><p>  傳 入?yún)?shù)username 表示 用戶名,userpwd 表示密碼 </p><p>  如果用戶和密碼都正確返回true,否則返回false</

69、p><p>  modifyUserPwd </p><p>  public boolean modifyUserPwd(java.lang.String username,</p><p>  java.lang.String userpwd)</p><p><b>  修改用戶密碼 </b><

70、;/p><p>  傳 入?yún)?shù)username 表示 用戶名,userpwd 表示新密碼 </p><p>  如果修改成功返回true,否則返回false</p><p>  closeConnection </p><p>  public void closeConnection()</p><p>  使用完連接后

71、,將連接返回給連接池</p><p>  4.3.2 Interest類</p><p>  圖 10 類結(jié)構(gòu)圖</p><p>  上圖是Interest的類圖,從圖中可以看出這個類提供了哪些接口,下面我們就來具體描述這些接口。</p><p>  database.util </p><p>  Class In

72、terest</p><p>  public class Interest </p><p>  addInterest </p><p>  public boolean checkLine(int Line_num,)</p><p>  查詢景點是否經(jīng)過某一路線 </p><p>  傳入?yún)?shù)Line

73、_num(路線ID代碼),Line_name(路線名稱) </p><p>  如果Line_num經(jīng)過Line_name 這條路線則返回true值 </p><p><b>  否則返回false</b></p><p><b>  getLine </b></p><p>  public ja

74、va.sql.ResultSet getLine(java.lang.String Line_num)</p><p>  提供查旅游路線經(jīng)由的所有旅游景點 </p><p>  傳入?yún)?shù)Line_num(旅游路線代碼) </p><p>  返回結(jié)果是一個記錄集</p><p>  如果為空表示查詢出錯或沒有結(jié)果 </p&g

75、t;<p><b>  addLine </b></p><p>  public boolean addLine(int Tourism_num,</p><p>  java.lang.String station_name,</p><p>  int station_num)</p>

76、;<p>  在line_db表里添加一條記錄 </p><p>  傳入?yún)?shù);Line_num(旅游路線名稱),interest_name(景點名稱),interest_num(景點代碼) </p><p>  非法景點則返回false 添加成功返回true,否則返回false</p><p><b>  delLine </b>

77、;</p><p>  public boolean delLine(int Line_num,</p><p>  java.lang.String station_name)</p><p>  刪除line_db 里的一條記錄 </p><p>  傳入?yún)?shù)Line_num(哪條路線),interest_name(景

78、點名稱) </p><p>  非法景點則返回false 刪除成功返回true,否則返回false</p><p><b>  modLine </b></p><p>  public boolean modLine(int id,</p><p>  int Line_num,</p>

79、<p>  java.lang.String station_name,</p><p>  int station_num)</p><p>  修改Line_db表的一條記錄 </p><p>  傳入?yún)?shù)id(line_db表里的關(guān)鍵 字段第 幾條記錄) Line_num哪條旅游路線,interest_name 景點名字 in

80、terest_num第幾個景點 </p><p>  如果修改成功則返回true,否則返回false</p><p>  closeConnection</p><p>  public void closeConnection()</p><p>  使用完連接后,將連接返回給連接池</p><p>  4.3 數(shù)

81、據(jù)庫管理</p><p>  管理程序主頁面截圖:</p><p><b>  圖11 界面截圖</b></p><p>  4.3.1 Login.jsp</p><p>  部分代碼:function check_input(theForm)</p><p>  {

82、 </p><p>  if ((theForm.username.value =="")|(isspacestring(theForm.username.value)))</p><p><b>  {</b></p><p>  alert("請輸入用戶名!");</p><p&

83、gt;  theForm.username.focus();</p><p>  return (false);</p><p><b>  }</b></p><p>  if((theForm.userpwd.value =="")|(isspacestring(theForm.userpwd.value)))</

84、p><p><b>  {</b></p><p>  alert("請輸入密碼!");</p><p>  theForm.userpwd.focus();</p><p>  return (false);</p><p><b>  } </b>

85、</p><p>  return (true);</p><p><b>  }</b></p><p>  根據(jù)用戶提示框的輸入(管理員名,密碼),調(diào)用數(shù)據(jù)庫數(shù)據(jù),找到匹配項則登錄成功。可以進行其余數(shù)據(jù)加的操作。</p><p><b>  圖12 界面截圖</b></p><

86、;p>  4.3.2 Logincheck.jsp</p><p><b>  部分的代碼部分:</b></p><p><b>  <%</b></p><p>  String username=request.getParameter("username");</p>&

87、lt;p>  String userpwd=request.getParameter("userpwd");</p><p>  String errmsg,whereTo;</p><p>  errmsg="";</p><p>  whereTo="";</p><p>

88、  if (username!=null&&userpwd!=null) </p><p><b>  { </b></p><p>  username=username.trim();</p><p>  userpwd=userpwd.trim();</p><p>  if(user.c

89、heckUserPwd(username,userpwd))</p><p><b>  { </b></p><p>  session.putValue("username",username);</p><p>  session.putValue("logined",new Integer(1)

90、); </p><p>  whereTo="about.htm"; </p><p><b>  %> </b></p><p>  接收來自login.jsp的參數(shù),校驗參數(shù)。并將結(jié)果傳入下一步</p><p

91、>  4.3.3 city.jsp</p><p>  根據(jù)用戶從窗口輸入的數(shù)據(jù),進行城市表內(nèi)容的增加,修改等內(nèi)容</p><p>  4.3.4 Interest.jsp</p><p><b>  部分代碼部分:</b></p><p><b>  <%</b></p>

92、<p>  String whereTo,errmsg;</p><p>  whereTo="";</p><p>  errmsg="";</p><p>  String addmsg=request.getParameter("addmsg");</p><p>

93、  String othermsg=request.getParameter("othermsg");</p><p>  if(addmsg==null)</p><p><b>  { </b></p><p>  addmsg="";//Add a interest";</p>

94、<p><b>  }</b></p><p>  if(othermsg==null)</p><p><b>  {</b></p><p>  othermsg="";//"other operation";</p><p><b&g

95、t;  }</b></p><p>  Integer login=(Integer)session.getValue("logined");</p><p>  if(login==null)</p><p><b>  { </b></p><p>  login=new Inte

96、ger(0);</p><p><b>  }</b></p><p>  int log=login.intValue();</p><p><b>  %></b></p><p>  提示輸入數(shù)據(jù),并將參數(shù)傳入addInterest.jsp 或 modifyInterest.jsp<

97、;/p><p><b>  圖13 界面截圖</b></p><p>  4.3.5 addInterest.jsp</p><p><b>  部分代碼如下:</b></p><p>  if(interestname==null)</p><p><b>  {&

98、lt;/b></p><p>  errmsg="put all the information";</p><p>  whereTo="Interest.jsp?addmsg="+errmsg;</p><p><b>  %></b></p><p>  <

99、jsp:forward page='<%=whereTo%>'/></p><p><b>  <%</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {&

100、lt;/b></p><p>  interestname=interestname.trim();</p><p>  cityname =cityname.trim();</p><p>  tmpbyte=interestname.getBytes("ISO8859_1");</p><p>  inte

101、restname=new String(tmpbyte);</p><p>  接收來自Interest.jsp的數(shù)據(jù),并進行interest表內(nèi)數(shù)據(jù)項的增加操作。</p><p>  4.3.6 Line.jsp</p><p>  根據(jù)輸入,進行旅游路線的增加、修改等操作。具體過程類似于Interest.jsp,代碼</p><p>&l

102、t;b>  代碼略</b></p><p>  4.3.7 modPwd.jsp</p><p><b>  主要代碼如下:</b></p><p><b>  <%</b></p><p>  String errmsg,whereTo;</p><p&

103、gt;  String pwdmsg=request.getParameter("pwdmsg");</p><p>  String newpwd=request.getParameter("newpwd");</p><p>  String anthornewpwd=request.getParameter("anthornewpwd

104、");</p><p>  Integer login=(Integer)session.getValue("logined");</p><p>  String username=(String)session.getValue("username");</p><p>  if(pwdmsg==null)<

105、;/p><p><b>  {</b></p><p>  pwdmsg=username+"修改密碼";</p><p><b>  }</b></p><p>  if(login==null)</p><p><b>  { </b&

106、gt;</p><p>  login=new Integer(0);</p><p><b>  }</b></p><p>  int log=login.intValue();</p><p>  if(log==0)</p><p><b>  {</b></p

107、><p>  errmsg="Please login before you manager the Station ";</p><p>  whereTo="login.jsp?loginmsg="+errmsg;</p><p><b>  %></b></p><p> 

108、 未登錄的要求登錄,并對已登錄的用戶名進行密碼的修改。要求兩次輸入確認密碼更</p><p><b>  圖14 界面截圖</b></p><p><b>  第五章 結(jié)論</b></p><p>  本文介紹的數(shù)據(jù)庫接連設(shè)計模式,層次分明,結(jié)構(gòu)清晰。方便各個層次的修改,不同層次的修改只要接口不變就不會引起上層的變動。使

109、用連接池技術(shù)使系統(tǒng)效率有了較大的提高。對于手機上網(wǎng)這種對信息定位要求準(zhǔn)確,流量有限制的上網(wǎng)模式非常適合,對推動普及手機上網(wǎng)有顯著的促進作用。</p><p>  不足之處是,連接池實現(xiàn)時采用比較簡單的分配,回收策略,不能完全發(fā)揮系統(tǒng)的性能。需要找一個行之有效的分配策略來管理連接池,才能完全利用的系統(tǒng)的資源。而同樣是對于手機上網(wǎng)查詢的高可靠性的要求(用戶數(shù)量不可預(yù)計),由于本小組只是針對實驗在WAP仿真器上實現(xiàn),對

110、連接用戶的數(shù)量估計不足,故不能完全的保證。</p><p><b>  致 謝 語</b></p><p>  非常感謝老師對我們項目所做的耐心細致的指導(dǎo)和建議!同時對同組的張濤同學(xué)設(shè)計的簡約實用的前臺程序表示感謝。</p><p><b>  參考文獻</b></p><p>  [1] 李真文.

111、 SQL Server 2000 開發(fā)人員指南[M].北京:北京希望電子出版社,2001年3月. </p><p>  [2] 孫一林. Java數(shù)據(jù)庫編程實例[M].北京:清華大學(xué)出版社,年7月.</p><p>  [2] 陳海山 .Java Servlet 網(wǎng)絡(luò)編程[M].北京:清華大學(xué)出版社,2002年1月.</p><p>  [3] 王運凱. Java

112、2平臺安全技術(shù):結(jié)構(gòu)、API設(shè)計和實現(xiàn)[M].北京:機械工業(yè)出版社,2000年10月.</p><p>  [4] 王克宏. JAVA語言API類庫[M].北京:清華大學(xué)出版社,1997年4月.</p><p>  [5] Dustin R. Callaway. 精通Servlets:Java平臺的服務(wù)器端編程[S]. 北京:清華大學(xué)出版社,2002年1月.</p><

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論