




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 . . . 畢畢業(yè)業(yè)論論文文(設(shè)設(shè)計計)B BA AC CH HE EL LO OR R D DI IS SS SE ER RT TA AT TI IO ON N論文題目:基于奇異值分解的編碼捕獲方法 . . . I / 86基于基于 J2MEJ2ME 的手機水電費查詢系統(tǒng)的設(shè)計與實現(xiàn)的手機水電費查詢系統(tǒng)的設(shè)計與實現(xiàn)中中 文文 摘摘 要要J2ME是JAVA的一個重要分支,不僅保留了JAVA的傳統(tǒng)特性,更是將JAVA的優(yōu)勢擴展到了無線領(lǐng)域。它主要針對消費型和嵌入式設(shè)備而開發(fā),克服了這些小型設(shè)備電力、網(wǎng)絡(luò)等物理環(huán)境相對較弱的缺點,為這些設(shè)備提供資源利用率高的可開發(fā)環(huán)境。隨著生活中小型嵌入式設(shè)備利
2、用率的提高,J2ME也越來越受到大家的青睞。本文是在深入研究J2ME平臺的基礎(chǔ)上,設(shè)計并實現(xiàn)了基于J2ME的手機水電費查詢系統(tǒng)。該系統(tǒng)總體上采用MVC3層架構(gòu),基于 協(xié)議。其中手機客戶端使用J2ME語言作為編程平臺,實現(xiàn)各種界面顯示;控制層 Communication負(fù)責(zé)程序跳轉(zhuǎn),處理客戶端的請求,調(diào)用模型層進(jìn)行處理;服務(wù)器端采用Mysql數(shù)據(jù)庫,以JDBC作為數(shù)據(jù)連接技術(shù)。運用通用分組無線業(yè)務(wù)技術(shù),本系統(tǒng)可以使手機終端實現(xiàn)幾乎所有柜臺功能,包括普通用戶的繳費、各種信息查詢、個人信息修改,抄表員的抄表功能等。做到了可隨時隨地查詢所需的水電費信息,突破了目前只能到水電部門繳費、查詢的現(xiàn)狀,能快速
3、完整地開發(fā)出高效GPRS應(yīng)用。本系統(tǒng)的實現(xiàn)為E時代的用戶提供了更多便利。關(guān)鍵詞:水電費查詢;關(guān)鍵詞:水電費查詢;J2MEJ2ME;MVCMVC;JDBCJDBC;ServletServlet;MysqlMysql;通用分組無線業(yè)務(wù);通用分組無線業(yè)務(wù) . . . II / 86TheThe DesignDesign andand ImplementationImplementation ofMobileofMobile PhonePhone UtilitiesUtilities InquiringInquiring SystemSystemBasedBased onon J2MEJ2MEABST
4、RACTABSTRACTJ2ME is an important branch of JAVA,it not only keeps JAVAs traditional characteristics,but expands JAVAs advantage to wireless.J2ME is developed for comsumptive and embedded equipments mainly,which overcomes the weak physical envirment of these equipments,such as power,network and so on
5、,so it provides high resource utilization for these equipment.With the more and more extendsive use of these equipment,J2ME is favored more and more.This article is based on the deep research of J2ME platform,then designs and implements the mobile phone Utilities Inquiring System based on J2MEAs a w
6、hole ,MVC 3-tier architecture is adopted in this system ,which is based on protocol.In the system, the mobile client terminal uses J2ME as Programming platform to achieve a variety of screen displays.Control layer Communication is responsible for the program jumps,deals with requests from client ter
7、minal and calls model layer to deal.Serversideadopts Mysql as database and uses JDBC as database connection skill.Combining with GPRS, mobile terminal achieves all counter founctions,including common users payment,information being searched,information being modified and workers meter reading.Client
8、 can search all information about utilities anytime and anywhere almostly,which breaks the status that people can only pay and search in hydropower sector and develops efficient GPRS application quickly and completely.This system provides more convenience to clients in E age.KEYKEY WORD:UtilitiesWOR
9、D:Utilities iquiringiquiring;J2MEJ2ME;MVCMVC;JDBCJDBC;ServletServlet;MysqlMysql;GPRSGPRS . . . III / 86目目 錄錄第一章前言 11.1 開發(fā)背景 11.2 項目的主要研究工作 1第二章理論基礎(chǔ) 22.1 JAVA22.1.1 JAVA 概念 22.1.2 JAVA 主要特點 22.2 J2ME32.2.1 J2ME 概念 32.2.2 J2ME 架構(gòu) 32.2.3 J2ME 開發(fā)流程 42.2.4 J2ME 的優(yōu)勢 52.3 Mysql 數(shù)據(jù)庫 52.3.1 數(shù)據(jù)庫 52.3.2 Mysql
10、數(shù)據(jù)庫 62.3.3 Mysql 數(shù)據(jù)庫特點 62.4 關(guān)鍵技術(shù) 62.4.1 多線程技術(shù) 62.4.2 序列化和反序列化 72.4.3 無線網(wǎng)絡(luò)開發(fā)技術(shù) 72.4.4 GPRS 技術(shù) 82.4.5 數(shù)據(jù)庫連接技術(shù) 82.4.6 域名解析技術(shù) 9第三章系統(tǒng)的配置與使用 103.1 硬件環(huán)境配置 103.2 軟件環(huán)境配置 103.2.1 JDK 的安裝與設(shè)置 103.2.2 Tomcat 安裝與設(shè)置 113.2.3 Eclipse 的安裝 113.2.4 Mysql 的安裝和配置 12第四章手機水電費查詢系統(tǒng)分析 134.1 系統(tǒng)需求分析 134.2 系統(tǒng)功能分析 134.3 系統(tǒng)架構(gòu) 14第五
11、章公共類設(shè)計 155.1 用戶信息類的設(shè)計 155.1.1 類圖 155.1.2 類的結(jié)構(gòu) 155.1.3 核心代碼 165.2 抄表員信息類的設(shè)計 16 . . . IV / 865.2.1 類圖 165.2.2 類的結(jié)構(gòu) 175.2.3 核心代碼 175.3 銀行卡類的設(shè)計 175.3.1 類圖 175.3.2 類的結(jié)構(gòu) 185.3.3 核心代碼 185.4 繳費類的設(shè)計 195.4.1 類圖 195.4.2 類的結(jié)構(gòu) 195.4.3 核心代碼 195.5 消費類的設(shè)計 205.5.1 類圖 205.5.2 類的結(jié)構(gòu) 205.5.3 核心代碼 21第六章數(shù)據(jù)庫詳細(xì)設(shè)計 226.1 概念設(shè)計
12、 226.1.1 實體集與其屬性 226.1.2 系統(tǒng) E-R 圖 236.2 邏輯設(shè)計 246.3 物理設(shè)計 28第七章客戶端的設(shè)計與實現(xiàn) 297.1 客戶端通信流程 297.2 歡迎界面的設(shè)計與實現(xiàn) 307.2.1 界面設(shè)計 307.2.2 設(shè)計思路 307.2.3 核心代碼 307.3 登錄功能的設(shè)計與實現(xiàn) 317.3.1 界面設(shè)計 317.3.2 設(shè)計思路 327.3.3 核心代碼 337.4 抄表功能的設(shè)計與實現(xiàn) 367.4.1 界面設(shè)計 367.4.2 設(shè)計思路 377.4.3 核心代碼 377.5 繳費功能的設(shè)計與實現(xiàn) 387.5.1 界面設(shè)計 387.5.2 設(shè)計思路 397.
13、5.3 核心代碼 407.6 查詢功能的設(shè)計與實現(xiàn) 417.6.1 界面設(shè)計 417.6.2 設(shè)計思路 427.6.3 核心代碼 43 . . . V / 867.7 設(shè)置賬戶信息功能的設(shè)計與實現(xiàn) 457.7.1 界面設(shè)計 457.7.2 設(shè)計思路 467.7.3 核心代碼 477.8 網(wǎng)絡(luò)處理模塊的設(shè)計與實現(xiàn) 497.8.1 設(shè)計思路 497.8.2 核心代碼 49第八章服務(wù)器端的設(shè)計與實現(xiàn) 518.1 服務(wù)器端的通信流程 518.2 解析登錄功能的設(shè)計與實現(xiàn) 528.2.1 設(shè)計思路 528.2.2 核心代碼 538.3 解析繳費功能的設(shè)計與實現(xiàn) 548.3.1 設(shè)計思路 548.3.2
14、核心代碼 548.4 解析查詢功能的設(shè)計與實現(xiàn) 558.4.1 設(shè)計思路 558.4.2 核心代碼 568.5 解析設(shè)置賬戶信息功能的設(shè)計與實現(xiàn) 588.5.1 設(shè)計思路 588.5.2 核心代碼 58第九章系統(tǒng)的發(fā)布與測試 609.1 系統(tǒng)的發(fā)布 609.2 系統(tǒng)的測試 61第十章總結(jié) 63參考文獻(xiàn) 64致 66附錄 67 . . . I / 86第一章第一章 前言前言1.11.1 開發(fā)背景開發(fā)背景隨著移動通信技術(shù)的突飛猛進(jìn),移動開發(fā)慢慢成為開發(fā)者關(guān)注的熱點。J2ME專為嵌入式/移動設(shè)備而開發(fā),是嵌入式/移動應(yīng)用平臺的王者,它把JAVA的使用圍擴展到所有的電子設(shè)備開發(fā)上。所以,J2ME是本系
15、統(tǒng)開發(fā)語言的第一選擇1。隨著人們生活水平質(zhì)量的提高,傳統(tǒng)的水電費繳納方式已不能滿足人們的要求,特別是當(dāng)消費者對水電費結(jié)算產(chǎn)生質(zhì)疑時,水電費詳單的查詢就顯得非常重要。目前,國居民的水電費都是到柜臺進(jìn)行繳納和查詢,如何才能夠給客戶提供更方便的服務(wù)成為水電部門面臨的重要問題之一。眾所周知,由于移動通信突飛猛進(jìn)的發(fā)展和手機智能化程度的加強,手機在日常生活中得到廣泛應(yīng)用,移動開發(fā)也成為軟件開發(fā)的熱點。因此,利用手機的便捷性是解決問題的有效途徑。利用本系統(tǒng),用戶和抄表員可以隨時隨地進(jìn)行水電費的相關(guān)操作,如普通用戶的繳費、信息查詢、信息修改,抄表員的抄表等。而我國移動用戶數(shù)量居世界首位,移動終端的硬件性能也
16、在不斷提高2。所以本系統(tǒng)的研究與實現(xiàn)具有很大的應(yīng)用價值和市場前景。1.21.2 項目的主要研究工作項目的主要研究工作本項目要完成的任務(wù)即是設(shè)計一個系統(tǒng),基于協(xié)議,使用J2ME語言作為編程平臺,結(jié)合Mysql數(shù)據(jù)庫實現(xiàn)普通用戶的繳費、信息查詢、信息修改,抄表員的抄表等,做到可隨時隨地查詢所需的水電費信息。系統(tǒng)可以用手機模擬器進(jìn)行模擬,最終可以在手機上利用GPRS技術(shù)成功運行。 . . . II / 86第二章第二章 理論基礎(chǔ)理論基礎(chǔ)2.12.1JAVAJAVA2.1.1JAVA 概念JAVA 是一種重要的編程語言,是由 Sun Microsystems 公司推出的,已經(jīng)在世界圍被軟件開發(fā)商所接受
17、。很多團(tuán)隊將 JAVA 作為通用編程語言,是因為 JAVA 的易于編程和安全特性使用戶可以快速地產(chǎn)生工作代碼,而多線程支持符合時新的基于網(wǎng)絡(luò)和圖形用戶界面的應(yīng)用程序,這些應(yīng)用程序必須同時參加多個任務(wù),同時異常處理機制則簡化了錯誤情況的處理。盡管 JAVA 的建工具很強大,但它仍然是一門簡單的語言,程序員能夠很快地上手。又因為 JAVA 的可移植性,程序員只要編寫一次代碼,不必關(guān)心應(yīng)用程序在各個軟硬件平臺上的移植問題。JAVA 不僅是編程語言,還是一個程序開發(fā)和發(fā)布平臺,給程序員提供了許多工具,如編譯器、解釋器、文檔生成器、文件打包工具和運行時環(huán)境(JRE,JAVA runtime enviro
18、nment)等3。目前針對不同的市場目標(biāo)和設(shè)備進(jìn)行定位,JAVA 被劃分成 J2EE、J2SE、J2ME 三個平臺。J2EE,即 JAVA2 Enterprise Edition,主要是為企業(yè)提供一個應(yīng)用服務(wù)器的運行和開發(fā)平臺,其本身是一個開放的標(biāo)準(zhǔn),任何軟件廠商都可以推出自己的符合 J2ee 標(biāo)準(zhǔn)的產(chǎn)品,使用戶可以有多種選擇。J2SE,即 JAVA2 Standard Edition,主要是為臺式機和工作站提供一個開發(fā)和運行的平臺。J2ME,即 JAVA2 Micro Edition,主要是面向嵌入式設(shè)備和消費電子產(chǎn)品,使得 JAVA 程序能夠在手機、機頂盒、PDA 等小型設(shè)備上運行。2.1
19、.2JAVA 主要特點1、跨平臺與平臺無關(guān)可以說是 JAVA 最大的優(yōu)勢。當(dāng)其他語言編寫的程序面臨因為操作系統(tǒng)的變化、處理器升級以與核心系統(tǒng)資源的變化而導(dǎo)致程序出現(xiàn)錯誤或無法運行的困境時,JAVA 虛擬機成功地解決了這個問題,實現(xiàn)了“一次編成,處處運行”的目標(biāo)4。 2、多線程線程是程序中一個單一的順序控制流程 ,所謂的多線程就是指 在單個程序中同 . . . III / 86時運行多個線程完成不同的工作 。線程機制是 JAVA 的又一大亮點,通過使用多線程可以分別用不同的線程完成特定的行為,而不需要采用全局的事件循環(huán)機制,這樣就很容易實現(xiàn)網(wǎng)絡(luò)上實時的交互行為,通過提高資源使用效率 進(jìn)而提高系統(tǒng)
20、的 效率。3、簡單一方面 JAVA 語言的語法與其他語言很接近,所以大多數(shù)學(xué)者很容易學(xué)習(xí)和使用JAVA。另一方面 JAVA 丟棄了其他語言中很少使用的、令人難以理解的的特性。并且 JAVA語言提供了自動垃圾回收機制,程序員不必單獨考慮存管理的問題5。4、豐富的類庫和網(wǎng)絡(luò)功能JAVA 類庫就是一些已寫好、可供調(diào)用的類的集合,JAVA 將這些類整理在一個個包中,每一包里都包含一些特定功能的類和接口,當(dāng)這些包被用 import 引入程序后,用戶就可以訪問包中類和接口,不需要再重新設(shè)計。2.2J2ME2.2J2ME2.2.1J2ME 概念美國 Sun 公司是 IT 界為全球用戶提供最具實力的硬件、 軟
21、件與服務(wù)的領(lǐng)先供應(yīng)商,而 J2ME 是 Sun 公司專門針對嵌入式、消費類電子產(chǎn)品推出的開發(fā)平臺,是一種高度優(yōu)化的運行環(huán)境。J2ME 的另一種稱法是 JAVA ME,是 JAVA 的一個組成部分,與J2SE、J2EE 并稱。由于 JAVA 的跨平臺性,遵循 J2ME 規(guī)開發(fā)的 JAVA 程序可以移植到各種不同的小型電子設(shè)備上,允許移動無線設(shè)備之間共享應(yīng)用程序。2.2.2J2ME 架構(gòu)J2ME 架構(gòu)從上至下分為簡表(Profile)、配置(Configuration)和主機操作系統(tǒng)(HostOperating System)6,如圖 1。 . . . IV / 86圖 1J2ME 架構(gòu)1、簡表簡
22、表(Profile)是專門針對某種特定的設(shè)備而制定的功能接口。它為一樣消費電子設(shè)備的不同的生產(chǎn)商提供了標(biāo)準(zhǔn)化的 JAVA 類庫,現(xiàn)今已經(jīng)有五個簡表有了規(guī),分別是Mobile information devices profile (MIDP)、Personal digital assistant profile、Foundation profile、Personal profile、RMI profile。本系統(tǒng)主要利用的簡表是 MIDP,它定義了一個標(biāo)準(zhǔn) JAVA API 集合。2、配置JAVA 是邊解釋邊運行的程序,所有的程序都被編譯成二進(jìn)制代碼并運行在 JAVA 虛擬機(JVM,JAVA
23、 Virtual Machine)上,而配置決定了所使用的 JVM。配置包括核心庫、虛擬機等。當(dāng)前 J2ME 存在兩種配置:CDC(Connected Device Configuration,連接設(shè)備配置)、CLCD(Connected limited device configuration,有限連接設(shè)置配置)。CDC 面向強大的可以間歇式地與網(wǎng)絡(luò)連接的設(shè)備,即有穩(wěn)定的電源供應(yīng)、設(shè)備性能強勁的設(shè)備;CLCD 面向微型設(shè)備和嵌入式設(shè)備。JAVA 虛擬機是所用 JAVA程序的基礎(chǔ),在手機出廠前已經(jīng)固化在手機中了7。配置與簡表一起提供了一個面向移動信息設(shè)備的完整J2ME 應(yīng)用程序運行環(huán)境。3、主
24、機操作系統(tǒng) 主機操作系統(tǒng)是在物理計算機上運行的操作系統(tǒng),在它之上運行虛擬機軟件。2.2.3J2ME 開發(fā)流程1、J2ME 開發(fā)的第一步就是要詳細(xì)了解客戶的需求,針對客戶的需求來編寫適合客戶的應(yīng)用軟件。2、配置自己的開發(fā)環(huán)境,然后進(jìn)行編碼,生成.JAVA 文件。3、對.JAVA 文件進(jìn)行編譯,生成.class 文件。4、打包成.jar 文件,下載發(fā)布到移動設(shè)備上8。開發(fā)步驟如圖 2。 . . . V / 86 圖 2J2ME 開發(fā)步驟2.2.4J2ME 的優(yōu)勢與 J2SE 和 J2EE 相比,J2ME 不是一個單獨的技術(shù)規(guī),而是一系列技術(shù)規(guī)的總稱,其總體的的運行環(huán)境和目標(biāo)也更加多樣化,具有獨特的
25、優(yōu)勢。首先,J2ME 是為了使用有限的電力、網(wǎng)絡(luò)連接以與有限圖形界面設(shè)計用戶的開發(fā),通過剪裁某些小型設(shè)備上不需要的功能,以達(dá)到減少 JAVA 虛擬機體積以與相應(yīng)運行庫體積的目的,目標(biāo)是為小型設(shè)備提供資源利用率高的可開發(fā)環(huán)境。其次,J2ME 將 JAVA 的“一次編寫,處處運行”的設(shè)計理念擴展到無限領(lǐng)域。對于程序開發(fā)員而言,只要手機安裝了 JAVA 虛擬機即可執(zhí)行 JAVA 程序,提高程序的一致性;對用戶而言,也不必?fù)?dān)心下載的程序無法運行。最后,無線設(shè)備上大多數(shù)的現(xiàn)有程序都是置的且功能固定的,沒有制造商的參與很難進(jìn)行軟件安裝與升級。J2ME 提供了動態(tài)部署機制,可以通過無線網(wǎng)絡(luò)下載和安裝程序。不
26、僅為廠商和開發(fā)者提供了低成本的軟件產(chǎn)品發(fā)布方式,還允許用戶按需動態(tài)地下載并個性化定制自己的程序。2.3Mysql2.3Mysql 數(shù)據(jù)庫數(shù)據(jù)庫2.3.1 數(shù)據(jù)庫數(shù)據(jù)(Data)是用物理符號記錄下來的可以識別的信息,不同的物理符號體現(xiàn)出數(shù)據(jù)的不同表現(xiàn)形式,如數(shù)字、圖形、文字等,而數(shù)據(jù)庫(DB,Database)就是長期存儲 . . . VI / 86在計算機的數(shù)據(jù)集合9。數(shù)據(jù)庫的系統(tǒng)由操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)、應(yīng)用開發(fā)工具、應(yīng)用系統(tǒng)/軟件和數(shù)據(jù)庫系統(tǒng)管理員組成,其系統(tǒng)圖如下圖 3。圖 3 數(shù)據(jù)庫系統(tǒng)2.3.2Mysql 數(shù)據(jù)庫Mysql 是眾多數(shù)據(jù)庫中的一種,它是一個小型開放源代碼的 關(guān)系型數(shù)據(jù)
27、庫管理系統(tǒng),最常用的數(shù)據(jù)庫管理語言 是結(jié)構(gòu)化查詢語言 SQL。2.3.3Mysql 數(shù)據(jù)庫特點與其他數(shù)據(jù)庫相比,Mysql 數(shù)據(jù)庫具有以下特點:1、是目前市場上運行速度最快的數(shù)據(jù)庫系統(tǒng)。2、提供 TCP/IP、ODBC 和 JDBC 等多種數(shù)據(jù)庫連接途徑 。3、同時訪問數(shù)據(jù)庫的用戶數(shù)量不受限制。4、可以處理上千萬條記錄。5、支持多線程。正因為 Mysql 具有的這些特點,所以被許多中小型選為數(shù)據(jù)庫10。 . . . VII / 862.42.4 關(guān)鍵技術(shù)關(guān)鍵技術(shù)2.4.1 多線程技術(shù)線程是程序中一個單一的順序控制流程 ,每個線程共享其所附屬的進(jìn)程的所有資源,多線程就是指在單個程序中同時運行多個
28、線程完成不同的工作 。當(dāng)多線程執(zhí)行時,該程序?qū)?yīng)的進(jìn)程就有多個控制流在同時運行,意味著一個程序的多條執(zhí)行語句同時執(zhí)行。多線程技術(shù)使系統(tǒng)速度更快、通信實現(xiàn)更容易11。2.4.2 序列化和反序列化1、序列化數(shù)據(jù)序列化是將對象轉(zhuǎn)換為二進(jìn)制數(shù)據(jù)流的一種方法,這種轉(zhuǎn)換可以使對象保存在文件中或在網(wǎng)絡(luò)中傳輸。2、反序列化反序列化是序列化的相反過程,即在另一程序中打開字節(jié)流并重構(gòu)對象。這兩個過程結(jié)合起來使得數(shù)據(jù)能被輕松傳輸和存儲,簡化了對象持久化的實現(xiàn)。2.4.3 無線網(wǎng)絡(luò)開發(fā)技術(shù)1、GCF由于受移動信息設(shè)備處理能力和存的限制,J2ME 有自己的聯(lián)網(wǎng)框架通用連接框架(GCF,Generic Connectio
29、n Framework),由 CLDC 定義。層次結(jié)構(gòu)如圖 4。 . . . VIII / 86圖 4 GCF 層次結(jié)構(gòu)2、 連接在 MIDP 規(guī)中規(guī)的設(shè)備是必須支持 和 S 的。 屬于無狀態(tài)協(xié)議,其工作機制是請求和響應(yīng),也就是說當(dāng)用戶輸入了一個的地址,其實質(zhì)就是發(fā)送了一個請求,那這時瀏覽就會給予響應(yīng),返回給用戶所需要的頁面。一個 連接會經(jīng)過三種狀態(tài):setup、connected、closed。當(dāng)一個 被打開,但請求未發(fā)送之前為 setup 狀態(tài),這時應(yīng)用程序設(shè)置與服務(wù)器進(jìn)行連接的各種信息,用setRequestMethod 和 setRequestProperty 兩種方法完成。在 被打開
30、和被關(guān)閉之間為connected 狀態(tài)。連接關(guān)閉時,就進(jìn)入了 closed 狀態(tài)12。2.4.4GPRS 技術(shù)GPRS,通用分組無線服務(wù)(General Packet Radio Service),是一種基于全球移動通信系統(tǒng)(GSM,Global System for Mobile Communications)的無線分組交換技術(shù),其實現(xiàn)的方法就是以“分組”的形式將數(shù)據(jù)信息傳送到用戶端。GPRS 工作時,它在移動用戶和數(shù)據(jù)網(wǎng)絡(luò)之間提供一種連接,通過路由管理來進(jìn)行尋址和建立數(shù)據(jù)連接13。2.4.5 數(shù)據(jù)庫連接技術(shù)JAVA 語言提供了一套訪問關(guān)系數(shù)據(jù)庫的應(yīng)用程序編程接口,即 JDBC API。JD
31、BC 代表JAVA 數(shù)據(jù)庫互聯(lián),包含一組 JAVA 語言編寫的類和接口,是 JAVA 數(shù)據(jù)庫應(yīng)用的基礎(chǔ)。它定義了一個底層的 API,用來支持獨立任何特定 SQL 實現(xiàn)基本 SQL 功能。其主要特點是與任何關(guān)系式數(shù)據(jù)庫協(xié)同工作的方式完全一樣,在許多不同的數(shù)據(jù)庫連接模塊的頂端提供 . . . IX / 86了統(tǒng)一的接口,也就是說,訪問所有數(shù)據(jù)庫時無需分別寫程序。在創(chuàng)建數(shù)據(jù)庫之前必須先加載JDBC驅(qū)動,然后才可以創(chuàng)建數(shù)據(jù)庫連接,與數(shù)據(jù)庫建立連接后,應(yīng)用程序在此連接上可創(chuàng)建SQL語句對象,以便執(zhí)行用戶定義的特定SQL語句。執(zhí)行后的SQL語句將返回結(jié)果,查詢語句返回的是一個結(jié)果集對象,然后用next()
32、方法在記錄中移動游標(biāo)定位結(jié)果集中的記錄。最后關(guān)閉數(shù)據(jù)庫連接14。JDBC使用流程如圖5。圖 5JDBC 連接數(shù)據(jù)庫流程2.4.6 域名解析技術(shù)IP地址是網(wǎng)路上標(biāo)識站點的數(shù)字地址,其重要性可想而知,但比起IP地址,現(xiàn)實生活中在使用網(wǎng)絡(luò)資源時人們更熟識的是域名。例如學(xué)院的IP為“5”,而我們通常用域名“”來代替IP地址,這是便于記憶的一種方式。反過來說,當(dāng)我們注冊了域名后,只對自己的域名具有使用權(quán),只有解析成IP才可使用。域名的解析工作由DNS服務(wù)器完成,分為靜態(tài)和動態(tài)兩種。本系統(tǒng)所運用的是動態(tài)域名解析,即將固定的互聯(lián)網(wǎng)域名和動態(tài) IP地址實時對應(yīng)解析的服務(wù)。相對于傳統(tǒng)的
33、靜態(tài)DNS而言,它可以將一個固定的域名解析到一個動態(tài)的 IP地址,不管用戶何時 何地、以何種方式上網(wǎng)、 IP地址是否變化 ,都能保證通過一個固定的域名就能訪問到用戶的計算機15。 . . . 10 / 86第三章第三章 系統(tǒng)的配置與使用系統(tǒng)的配置與使用開發(fā)之前,首先準(zhǔn)備一下自己的開發(fā)環(huán)境。設(shè)計本系統(tǒng)時需要硬件和軟件兩方面的配置。3.13.1 硬件環(huán)境配置硬件環(huán)境配置安裝 Windows xp 操作系統(tǒng)的三星筆記本電腦一臺,開通 GPRS、型號為 OPPO A125 的手機一部。3.23.2 軟件環(huán)境配置軟件環(huán)境配置3.2.1JDK 的安裝與設(shè)置1、JDK 的安裝JDK(JAVA Develop
34、ment Kit)是 JAVA 開發(fā)工具包,是一切 JAVA 應(yīng)用程序的基礎(chǔ)。其安裝步驟如下所述:(1)下載 JDK 安裝文件 JDK1.7.0。(2)解壓文件,雙擊安裝文件 jdk1.7.0.exe,單擊“接受”按鈕進(jìn)入下一步。(3)選擇安裝容與路徑。中間列表是要安裝的可選功能,單擊每個可選功能左邊的按鈕,將彈出下拉菜單,我們選擇系統(tǒng)默認(rèn)的第一項“此功能將安裝在本地硬盤驅(qū)動器上”。安裝路徑選擇“D:JDK”。設(shè)置好安裝容與路徑后,單擊“下一步”,系統(tǒng)開始在選擇的安裝路徑下安裝所選的容。 (4)安裝 JRE。安裝方法和(3)中所述一樣,安裝目錄為“D:JDKjre”。設(shè)置好安裝容與路徑后,單擊
35、“下一步”,系統(tǒng)開始在選擇的安裝路徑下安裝所選的容。系統(tǒng)提示提示 JDK 安裝完成16。2、設(shè)置環(huán)境變量設(shè)置環(huán)境變量的方法如下所述: . . . 11 / 86(1)重啟電腦,右擊“我的電腦”,選擇“屬性”命,打開“系統(tǒng)屬性”,選擇“高級”選項卡,單擊“環(huán)境變量”按鈕,打開“環(huán)境變量”對話框。(2)單擊“用戶變量”中的“新建”按鈕,打開“新建系統(tǒng)變量”對話框,將變量名設(shè)置為 JAVA_HOME,變量值設(shè)置為 JDK 安裝目錄“D:JDK”。(3)新建一個系統(tǒng)變量,變量名設(shè)置為 classpath,變量值設(shè)置為“.D:JDKlib;D:JDKlibtools.jar;D:JDKlibservle
36、t-api.jar”,表示搜索 JAVA 類的路徑,包含一些 Jar 歸檔文件相應(yīng)的目錄,JAVA 程序執(zhí)行時往往會從 classpath 中選擇并添加自己需要的類路徑。變量值最前面的“.”表示當(dāng)前路徑不同值之間用“;”隔開。(4)新建一個系統(tǒng)變量,變量名設(shè)置為 Path,變量值設(shè)置為“D:JDKbin”。(5)環(huán)境測試:單擊“開始”-“運行”-輸入“cmd”-輸入“JAVA-version”-按“Enter”鍵。出現(xiàn)如下界面,安裝成功17。圖 6 測試成功界面3.2.2Tomcat 安裝與設(shè)置1、Tomcat 安裝(1)下載 Tomcat 壓縮文件 Apache Tomcat 5.5。(2)
37、解壓文件到“D:tomcat”下即可。2、設(shè)置環(huán)境變量(1)按 3.2.1 中的方法,新建用戶變量,其中變量名設(shè)置為 TOMCAT_HOME,變量值設(shè)置為“D:tomcat”。(2)修改用戶變量 classpath,在變量值后面添加“%TOMCAT_HOME%commonlibservlet-api.jar”。(3)修改用戶變量 path,在變量值后面添加“%TOMCAT_ HOME%bin”18。 . . . 12 / 863.2.3Eclipse 的安裝1、下載 Eclipse 壓縮包。2、將壓縮包進(jìn)行解壓,雙擊安裝文件 Eclipse.exe,安裝過程中導(dǎo)入 JDK 的安裝目錄即可。3.
38、2.4Mysql 的安裝和配置1、下載 Mysql 壓縮文件。2、解壓文件,在解壓后的文件中雙擊安裝文件 Setup.exe 開始安裝。在 Setuptype窗口中”Custom”單擊“Next”。3、設(shè)定 Mysql 的組件包和安裝路徑,單擊“Next”按鈕,直至出現(xiàn)“Finsh”,勾上“Configure the MySQL Server now”,單擊按鈕即完成 Mysql 的安裝。4、配置 Mysql 服務(wù)器(1)在 Mysql 配置向?qū)咏缑?,選擇配置方式“Detailed Configuration”,單擊“Next”。(2)選擇服務(wù)器安裝類型界面選擇“Server achine
39、”,單擊“Next”。(3)選擇安裝類型為“Transactional Database Only”,單擊“Next”。(4)選擇允許 Mysql 的最大數(shù)目為“Online Transaction Processing(OLTP)”,單擊“Next”。(5)設(shè)置 Mysql 端口。選中“Enable TCP/IP Networking”選項。設(shè)置 Port Number 值為 3306,單擊“Next”。(6)設(shè)置字符集。選擇第三項,在 Character Set 下拉框里選擇“gbk”,單擊“Next”。(7)注冊數(shù)據(jù)庫。選中“Install As Windows Service”選項,單
40、擊“Next”。(8)權(quán)限設(shè)置?!癗ew root password”項填寫新密碼,“Confirm”重輸一次密碼。設(shè)置完畢單擊“Next”按鈕直至出現(xiàn) finish,單擊“finish”。Mysql 安裝完畢19。如圖 7。 . . . 13 / 86圖 7 Mysql 安裝完成 . . . 14 / 86第四章第四章 手機水電費查詢系統(tǒng)分析手機水電費查詢系統(tǒng)分析4.14.1 系統(tǒng)需求分析系統(tǒng)需求分析隨著人們生活水平的不斷提高,手機逐步成為被大眾依賴的通信工具,如果能夠開發(fā)出一套水電費查詢系統(tǒng)使用戶能夠使用手機就進(jìn)行信息查詢、繳納與設(shè)置,不僅給用戶帶來方便,也可以給水電部門節(jié)約成本。所以本系
41、統(tǒng)無論從實用性還是從市場前景方面考慮,都是非常必要的20。4.24.2 系統(tǒng)功能分析系統(tǒng)功能分析根據(jù)使用對象不同,系統(tǒng)可以實現(xiàn)不同的功能。當(dāng)使用對象為抄表員時,可以實現(xiàn)登錄、抄表的功能。當(dāng)使用對象為普通用戶時可以完成登錄、繳費、查詢、設(shè)置賬戶信息等功能。1、抄表員首先,當(dāng)抄表員進(jìn)入系統(tǒng),輸入正確的用戶賬號和密碼后即可登錄成功,用戶不存在或密碼不正確均不可登錄并提示錯誤。登錄成功后的抄表員可以輸入用戶的水電費使用情況,系統(tǒng)會將數(shù)據(jù)發(fā)送給數(shù)據(jù)庫端,并將數(shù)據(jù)添加到用戶的消費表中。2、普通用戶首先,和抄表員一樣,當(dāng)用戶進(jìn)入系統(tǒng),輸入正確的用戶賬號和密碼后即可登錄成功,用戶不存在或密碼不正確均不可登錄并
42、提示錯誤。用戶登錄成功后可以進(jìn)行功能選擇,可供選擇的功能有繳費、查詢和設(shè)置賬戶信息。當(dāng)用戶選擇繳費功能時,系統(tǒng)會自動獲取當(dāng)前時間,提醒用戶所欠的水費、電費、賬戶余額以與銀行卡余額,用戶可根據(jù)信息提示輸入所繳納的費用。當(dāng)用戶選擇查詢功能,用戶可進(jìn)行個人信息查詢、水電費消費記錄查詢和繳費記錄查詢。個人信息包括用戶名、用戶賬號、聯(lián)系、賬戶余額和銀行卡余額。如果進(jìn)行消費和繳費記錄查詢,用戶輸入時間即可查到相關(guān)信息。如果想查全部消費或繳費信息就無需輸入時間;想查一年的信息輸入年份,如“2011” ,就可以查到 2011 這一年的信息了; . . . 15 / 86想查某個月的信息就輸入年份和月份,如“2
43、01104” ,就可以查到 2011 年 4 月份的信息了。當(dāng)用戶需要修改登錄密碼、用戶、聯(lián)系時,可以在登錄后選擇設(shè)置賬戶信息功能。如選擇修改密碼,用戶只要輸入正確的原始密碼、新密碼以與新密碼確認(rèn)就可修改成功。4.34.3 系統(tǒng)架構(gòu)系統(tǒng)架構(gòu)系統(tǒng)采用 MVC 設(shè)計模式。視圖層負(fù)責(zé)和用戶交互,然后把模型層的數(shù)據(jù)顯示到頁面上,當(dāng)模型層變化的時候,能實現(xiàn)自動更新,它也負(fù)責(zé)把視圖層的數(shù)據(jù)傳送給控制器。控制器主要負(fù)責(zé)程序的跳轉(zhuǎn),處理客戶的請求,調(diào)用模型層進(jìn)行處理。模型層負(fù)責(zé)執(zhí)行具體的商業(yè)邏輯21。具體來說,就是客戶端程序通過 向服務(wù)器端發(fā)送請求,服務(wù)器接受并解析請求后向數(shù)據(jù)庫查詢相關(guān)信息,然后將結(jié)果返回給
44、客戶端。系統(tǒng)整體架構(gòu)如圖 8。圖 8 系統(tǒng)整體架構(gòu)在客戶端和服務(wù)器端交換的信息過程中,需要交互很多信息,但是通過方式與服務(wù)器進(jìn)行網(wǎng)絡(luò)傳輸時只能傳輸二進(jìn)制數(shù)據(jù)。所以需要把對象進(jìn)行序列化,因此需要把要交互的信息以序列化的方式編寫成多個類,這些類是客戶端與服務(wù)器端都需要使用的。一個手機的 MIDP 客戶端開發(fā)包和服務(wù)器端開發(fā)包都需要調(diào)用通用的信息傳遞包。如圖 9。圖 9 交互信息 . . . 16 / 86第五章第五章 公共類設(shè)計公共類設(shè)計為了提高系統(tǒng)的可維護(hù)性和可重用性,可以設(shè)計一些公共類,在客戶端程序和服務(wù)器端同時使用,在這些類中對對象進(jìn)行序列化和反序列化。5.15.1 用戶信息類的設(shè)計用戶信息
45、類的設(shè)計5.1.1 類圖圖 10UserInfo 類圖5.1.2 類的結(jié)構(gòu)用戶信息類 UserInfo 用來封裝用戶的用戶 ID、用戶密碼、用戶名、銀行卡號、 、賬戶余額、性別等信息。private String userID = ;/用戶 IDprivate String password = ;/用戶密碼private String userName = ;/用戶名private String bankID = ;/銀行卡號private String phoneNum = ;/private float accountmoney =0;/賬戶余額private int sex = 0;
46、/性別 . . . 17 / 865.1.3 核心代碼實現(xiàn)用戶信息類 UserInfo 的核心代碼為:public String getUserID() return userID;public void setUserID(String userID) this.userID = userID;/Password、userName、bankID、phoneNum、accountmoney、sex 的實現(xiàn)方法與 UserID 方法一樣,省略public byte serialize() throws IOException /序列化信息ByteArrayOutputStream bout =
47、new ByteArrayOutputStream();DataOutputStream dataStream = new DataOutputStream(bout);dataStream.writeUTF(userID);/序列化 userID/password、bankID、userName、sex、phoneNum、accountmoney 省略return bout.toByteArray();public void deserialize(byte data) throws IOException /反序列化信息ByteArrayInputStream bin = new Byte
48、ArrayInputStream(data);DataInputStream dataStream = new DataInputStream(bin);userID = dataStream.readUTF();/反序列化 userID/password、bankID、userName、sex、phoneNum、accountmoney 省略5.25.2 抄表員信息類的設(shè)計抄表員信息類的設(shè)計5.2.1 類圖圖 11WorkerInfo 類圖 . . . 18 / 865.2.2 類的結(jié)構(gòu)抄表員信息類 WorkerInfo 用來封裝抄表員的用戶賬號、用戶密碼、用戶名、性別、等信息。privat
49、e String workerID = ;/用戶賬號private String workerPassword = ;/用戶密碼private String workerName=;/用戶名private String sex = ;/性別private String phoneNum = ;/5.2.3 核心代碼實現(xiàn)抄表員信息類 WorkerInfo 的核心代碼為:public void setworkerID(String workerID) this.workerID = workerID;public String getworkerID() return workerID;/ wor
50、kerPassword、workerName、sex、phoneNum 的實現(xiàn)方法與 workerID 方法一樣,省略public byte serialize() throws IOException /序列化信息ByteArrayOutputStream bout = new ByteArrayOutputStream();DataOutputStream dataStream = new DataOutputStream(bout);dataStream.writeUTF(workerID );/序列化 workerID /workerPassword、workerName、sex、ph
51、oneNum 省略public void deserialize(byte data) throws IOException /反序列化信息ByteArrayInputStream bin = new ByteArrayInputStream(data);DataInputStream dataStream = new DataInputStream(bin);workerID = dataStream.readUTF();/反序列化 workerID /workerPassword、workerName、sex、phoneNum 省略5.35.3 銀行卡類的設(shè)計銀行卡類的設(shè)計5.3.1 類圖
52、 . . . 19 / 86圖 12BankcardInfo 類圖5.3.2 類的結(jié)構(gòu)銀行卡類 BankcardInfo 用來封裝用戶銀行卡的銀行卡號、持卡人、卡余額、等信息。private String bankID = ;/銀行卡號private String userName = ;/持卡人private String money = ;/卡余額private String phoneNum = ;/5.3.3 核心代碼實現(xiàn)銀行卡類 BankcardInfo 的核心代碼為:public void setbankID(String bankID) this.bankID = bankID;
53、public String getbankID() return bankID;/userName、money、phoneNum 的實現(xiàn)方法與 bankID 方法一樣,省略public byte serialize() throws IOException /序列化ByteArrayOutputStream bout = new ByteArrayOutputStream();DataOutputStream dataStream = new DataOutputStream(bout);dataStream.writeUTF(bankID );/序列化 bankID/userName、mon
54、ey、phoneNum 省略public void deserialize(byte data) throws IOException /反序列化 . . . 20 / 86ByteArrayInputStream bin = new ByteArrayInputStream(data);DataInputStream dataStream = new DataInputStream(bin);bankID = dataStream.readUTF();/反序列化 bankID/userName、money、phoneNum 省略5.45.4 繳費類的設(shè)計繳費類的設(shè)計5.4.1 類圖圖 13
55、PayInfo 類圖5.4.2 類的結(jié)構(gòu)繳費類 PayInfo 用來封裝繳費信息的賬單號、用戶 ID、繳費日期、水費、電費等信息。private int billID = 0;/賬單號private String userID = ;/用戶 IDprivate String billDate = ;/繳費日期private float shuifei = 0;/水費private float dianfei = 0;/電費5.4.3 核心代碼實現(xiàn)繳費類 PayInfo 的核心代碼為:public void set userID (String userID) . . . 21 / 86this
56、. userID = userID;public String ge userID () return userID;/billDate、shuifei、dianfei 的實現(xiàn)方法與 bankID 方法一樣,省略public byte serialize() throws IOException /序列化ByteArrayOutputStream bout = new ByteArrayOutputStream();DataOutputStream dataStream = new DataOutputStream(bout);dataStream.writeUTF(userID);/序列化
57、bankID/billDate、shuifei、dianfei 省略public void deserialize(byte data) throws IOException /反序列化ByteArrayInputStream bin = new ByteArrayInputStream(data);DataInputStream dataStream = new DataInputStream(bin); userID = dataStream.readUTF();/反序列化 bankID/billDate、shuifei、dianfei 省略5.55.5 消費類的設(shè)計消費類的設(shè)計5.5.1
58、 類圖圖 14 ConsumeInfo 類圖5.5.2 類的結(jié)構(gòu)消費類 ConsumeInfo 用來封裝消費信息的賬單號、用戶 ID、消費日期、消費的水費、消費的電費等信息。private int billID =0;/賬單號 . . . 22 / 86private String userID = ;/用戶 IDprivate String bill_date = ;/消費日期private float shuifei =0;/消費的水費private float dianfei =0;/消費的電費5.5.3 核心代碼實現(xiàn)消費類 ConsumeInfo 的核心代碼如下:public void
59、 set billID (String billID) this. billID = billID;public String ge billID () return billID;/ bill_date、shuifei、dianfei 的實現(xiàn)方法與 bankID 方法一樣,省略public byte serialize() throws IOException /序列化ByteArrayOutputStream bout = new ByteArrayOutputStream();DataOutputStream dataStream = new DataOutputStream(bout)
60、;dataStream.writeUTF(billID);/序列化 bankID/bill_date、shuifei、dianfei 省略public void deserialize(byte data) throws IOException /反序列化ByteArrayInputStream bin = new ByteArrayInputStream(data);DataInputStream dataStream = new DataInputStream(bin);billID = dataStream.readUTF();/反序列化 bankID/bill_date、shuifei
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 律所托管輔合同范本
- 書桌采購合同范本
- 制定合同范本意義
- 瓷磚鋪貼施工合同范本
- 南水北調(diào)供水合同范本
- 蘇州市勞動合同范本
- 包月鮮花合同范本
- 樂隊駐唱合同范本
- 合作養(yǎng)魚協(xié)議合同范本
- 合伙安裝水電合同范本
- 人教版七年級數(shù)學(xué)下冊 第五章 相交線與平行線5.4 平移(課件)
- 數(shù)學(xué)之美:欣賞數(shù)學(xué)的優(yōu)雅與美麗
- 2023高考語文文言文復(fù)習(xí):《說苑》練習(xí)題(含答案解析)
- 成都印鈔公司招聘考試題
- 低血糖健康宣教
- 跨文化商務(wù)交際導(dǎo)論-教學(xué)課件Unit 2 Intercultural business communication
- 《射頻同軸電纜》課件2
- 餐飲經(jīng)營分析會報告
- 口腔頜面部感染患者的營養(yǎng)狀況及輔助營養(yǎng)治療策略
- 基層公職人員禁毒知識講座
- 以工代賑政策培訓(xùn)課件
評論
0/150
提交評論