基于J2ME的手機(jī)水電費(fèi)查詢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(軟件類)畢業(yè)論文_第1頁
基于J2ME的手機(jī)水電費(fèi)查詢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(軟件類)畢業(yè)論文_第2頁
基于J2ME的手機(jī)水電費(fèi)查詢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(軟件類)畢業(yè)論文_第3頁
基于J2ME的手機(jī)水電費(fèi)查詢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(軟件類)畢業(yè)論文_第4頁
基于J2ME的手機(jī)水電費(fèi)查詢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(軟件類)畢業(yè)論文_第5頁
已閱讀5頁,還剩81頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 . . . 畢畢業(yè)業(yè)論論文文(設(shè)設(shè)計(jì)計(jì))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 的手機(jī)水電費(fèi)查詢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)的手機(jī)水電費(fèi)查詢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)中中 文文 摘摘 要要J2ME是JAVA的一個(gè)重要分支,不僅保留了JAVA的傳統(tǒng)特性,更是將JAVA的優(yōu)勢擴(kuò)展到了無線領(lǐng)域。它主要針對(duì)消費(fèi)型和嵌入式設(shè)備而開發(fā),克服了這些小型設(shè)備電力、網(wǎng)絡(luò)等物理環(huán)境相對(duì)較弱的缺點(diǎn),為這些設(shè)備提供資源利用率高的可開發(fā)環(huán)境。隨著生活中小型嵌入式設(shè)備利

2、用率的提高,J2ME也越來越受到大家的青睞。本文是在深入研究J2ME平臺(tái)的基礎(chǔ)上,設(shè)計(jì)并實(shí)現(xiàn)了基于J2ME的手機(jī)水電費(fèi)查詢系統(tǒng)。該系統(tǒng)總體上采用MVC3層架構(gòu),基于 協(xié)議。其中手機(jī)客戶端使用J2ME語言作為編程平臺(tái),實(shí)現(xiàn)各種界面顯示;控制層 Communication負(fù)責(zé)程序跳轉(zhuǎn),處理客戶端的請(qǐng)求,調(diào)用模型層進(jìn)行處理;服務(wù)器端采用Mysql數(shù)據(jù)庫,以JDBC作為數(shù)據(jù)連接技術(shù)。運(yùn)用通用分組無線業(yè)務(wù)技術(shù),本系統(tǒng)可以使手機(jī)終端實(shí)現(xiàn)幾乎所有柜臺(tái)功能,包括普通用戶的繳費(fèi)、各種信息查詢、個(gè)人信息修改,抄表員的抄表功能等。做到了可隨時(shí)隨地查詢所需的水電費(fèi)信息,突破了目前只能到水電部門繳費(fèi)、查詢的現(xiàn)狀,能快速

3、完整地開發(fā)出高效GPRS應(yīng)用。本系統(tǒng)的實(shí)現(xiàn)為E時(shí)代的用戶提供了更多便利。關(guān)鍵詞:水電費(fèi)查詢;關(guān)鍵詞:水電費(fèi)查詢;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 項(xiàng)目的主要研究工作 1第二章理論基礎(chǔ) 22.1 JAVA22.1.1 JAVA 概念 22.1.2 JAVA 主要特點(diǎn) 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ù)庫特點(diǎn) 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第四章手機(jī)水電費(fèi)查詢系統(tǒng)分析 134.1 系統(tǒng)需求分析 134.2 系統(tǒng)功能分析 134.3 系統(tǒng)架構(gòu) 14第五

11、章公共類設(shè)計(jì) 155.1 用戶信息類的設(shè)計(jì) 155.1.1 類圖 155.1.2 類的結(jié)構(gòu) 155.1.3 核心代碼 165.2 抄表員信息類的設(shè)計(jì) 16 . . . IV / 865.2.1 類圖 165.2.2 類的結(jié)構(gòu) 175.2.3 核心代碼 175.3 銀行卡類的設(shè)計(jì) 175.3.1 類圖 175.3.2 類的結(jié)構(gòu) 185.3.3 核心代碼 185.4 繳費(fèi)類的設(shè)計(jì) 195.4.1 類圖 195.4.2 類的結(jié)構(gòu) 195.4.3 核心代碼 195.5 消費(fèi)類的設(shè)計(jì) 205.5.1 類圖 205.5.2 類的結(jié)構(gòu) 205.5.3 核心代碼 21第六章數(shù)據(jù)庫詳細(xì)設(shè)計(jì) 226.1 概念設(shè)計(jì)

12、 226.1.1 實(shí)體集與其屬性 226.1.2 系統(tǒng) E-R 圖 236.2 邏輯設(shè)計(jì) 246.3 物理設(shè)計(jì) 28第七章客戶端的設(shè)計(jì)與實(shí)現(xiàn) 297.1 客戶端通信流程 297.2 歡迎界面的設(shè)計(jì)與實(shí)現(xiàn) 307.2.1 界面設(shè)計(jì) 307.2.2 設(shè)計(jì)思路 307.2.3 核心代碼 307.3 登錄功能的設(shè)計(jì)與實(shí)現(xiàn) 317.3.1 界面設(shè)計(jì) 317.3.2 設(shè)計(jì)思路 327.3.3 核心代碼 337.4 抄表功能的設(shè)計(jì)與實(shí)現(xiàn) 367.4.1 界面設(shè)計(jì) 367.4.2 設(shè)計(jì)思路 377.4.3 核心代碼 377.5 繳費(fèi)功能的設(shè)計(jì)與實(shí)現(xiàn) 387.5.1 界面設(shè)計(jì) 387.5.2 設(shè)計(jì)思路 397.

13、5.3 核心代碼 407.6 查詢功能的設(shè)計(jì)與實(shí)現(xiàn) 417.6.1 界面設(shè)計(jì) 417.6.2 設(shè)計(jì)思路 427.6.3 核心代碼 43 . . . V / 867.7 設(shè)置賬戶信息功能的設(shè)計(jì)與實(shí)現(xiàn) 457.7.1 界面設(shè)計(jì) 457.7.2 設(shè)計(jì)思路 467.7.3 核心代碼 477.8 網(wǎng)絡(luò)處理模塊的設(shè)計(jì)與實(shí)現(xiàn) 497.8.1 設(shè)計(jì)思路 497.8.2 核心代碼 49第八章服務(wù)器端的設(shè)計(jì)與實(shí)現(xiàn) 518.1 服務(wù)器端的通信流程 518.2 解析登錄功能的設(shè)計(jì)與實(shí)現(xiàn) 528.2.1 設(shè)計(jì)思路 528.2.2 核心代碼 538.3 解析繳費(fèi)功能的設(shè)計(jì)與實(shí)現(xiàn) 548.3.1 設(shè)計(jì)思路 548.3.2

14、核心代碼 548.4 解析查詢功能的設(shè)計(jì)與實(shí)現(xiàn) 558.4.1 設(shè)計(jì)思路 558.4.2 核心代碼 568.5 解析設(shè)置賬戶信息功能的設(shè)計(jì)與實(shí)現(xiàn) 588.5.1 設(shè)計(jì)思路 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ā)背景隨著移動(dòng)通信技術(shù)的突飛猛進(jìn),移動(dòng)開發(fā)慢慢成為開發(fā)者關(guān)注的熱點(diǎn)。J2ME專為嵌入式/移動(dòng)設(shè)備而開發(fā),是嵌入式/移動(dòng)應(yīng)用平臺(tái)的王者,它把JAVA的使用圍擴(kuò)展到所有的電子設(shè)備開發(fā)上。所以,J2ME是本系

15、統(tǒng)開發(fā)語言的第一選擇1。隨著人們生活水平質(zhì)量的提高,傳統(tǒng)的水電費(fèi)繳納方式已不能滿足人們的要求,特別是當(dāng)消費(fèi)者對(duì)水電費(fèi)結(jié)算產(chǎn)生質(zhì)疑時(shí),水電費(fèi)詳單的查詢就顯得非常重要。目前,國居民的水電費(fèi)都是到柜臺(tái)進(jìn)行繳納和查詢,如何才能夠給客戶提供更方便的服務(wù)成為水電部門面臨的重要問題之一。眾所周知,由于移動(dòng)通信突飛猛進(jìn)的發(fā)展和手機(jī)智能化程度的加強(qiáng),手機(jī)在日常生活中得到廣泛應(yīng)用,移動(dòng)開發(fā)也成為軟件開發(fā)的熱點(diǎn)。因此,利用手機(jī)的便捷性是解決問題的有效途徑。利用本系統(tǒng),用戶和抄表員可以隨時(shí)隨地進(jìn)行水電費(fèi)的相關(guān)操作,如普通用戶的繳費(fèi)、信息查詢、信息修改,抄表員的抄表等。而我國移動(dòng)用戶數(shù)量居世界首位,移動(dòng)終端的硬件性能也

16、在不斷提高2。所以本系統(tǒng)的研究與實(shí)現(xiàn)具有很大的應(yīng)用價(jià)值和市場前景。1.21.2 項(xiàng)目的主要研究工作項(xiàng)目的主要研究工作本項(xiàng)目要完成的任務(wù)即是設(shè)計(jì)一個(gè)系統(tǒng),基于協(xié)議,使用J2ME語言作為編程平臺(tái),結(jié)合Mysql數(shù)據(jù)庫實(shí)現(xiàn)普通用戶的繳費(fèi)、信息查詢、信息修改,抄表員的抄表等,做到可隨時(shí)隨地查詢所需的水電費(fèi)信息。系統(tǒng)可以用手機(jī)模擬器進(jìn)行模擬,最終可以在手機(jī)上利用GPRS技術(shù)成功運(yùn)行。 . . . II / 86第二章第二章 理論基礎(chǔ)理論基礎(chǔ)2.12.1JAVAJAVA2.1.1JAVA 概念JAVA 是一種重要的編程語言,是由 Sun Microsystems 公司推出的,已經(jīng)在世界圍被軟件開發(fā)商所接受

17、。很多團(tuán)隊(duì)將 JAVA 作為通用編程語言,是因?yàn)?JAVA 的易于編程和安全特性使用戶可以快速地產(chǎn)生工作代碼,而多線程支持符合時(shí)新的基于網(wǎng)絡(luò)和圖形用戶界面的應(yīng)用程序,這些應(yīng)用程序必須同時(shí)參加多個(gè)任務(wù),同時(shí)異常處理機(jī)制則簡化了錯(cuò)誤情況的處理。盡管 JAVA 的建工具很強(qiáng)大,但它仍然是一門簡單的語言,程序員能夠很快地上手。又因?yàn)?JAVA 的可移植性,程序員只要編寫一次代碼,不必關(guān)心應(yīng)用程序在各個(gè)軟硬件平臺(tái)上的移植問題。JAVA 不僅是編程語言,還是一個(gè)程序開發(fā)和發(fā)布平臺(tái),給程序員提供了許多工具,如編譯器、解釋器、文檔生成器、文件打包工具和運(yùn)行時(shí)環(huán)境(JRE,JAVA runtime enviro

18、nment)等3。目前針對(duì)不同的市場目標(biāo)和設(shè)備進(jìn)行定位,JAVA 被劃分成 J2EE、J2SE、J2ME 三個(gè)平臺(tái)。J2EE,即 JAVA2 Enterprise Edition,主要是為企業(yè)提供一個(gè)應(yīng)用服務(wù)器的運(yùn)行和開發(fā)平臺(tái),其本身是一個(gè)開放的標(biāo)準(zhǔn),任何軟件廠商都可以推出自己的符合 J2ee 標(biāo)準(zhǔn)的產(chǎn)品,使用戶可以有多種選擇。J2SE,即 JAVA2 Standard Edition,主要是為臺(tái)式機(jī)和工作站提供一個(gè)開發(fā)和運(yùn)行的平臺(tái)。J2ME,即 JAVA2 Micro Edition,主要是面向嵌入式設(shè)備和消費(fèi)電子產(chǎn)品,使得 JAVA 程序能夠在手機(jī)、機(jī)頂盒、PDA 等小型設(shè)備上運(yùn)行。2.1

19、.2JAVA 主要特點(diǎn)1、跨平臺(tái)與平臺(tái)無關(guān)可以說是 JAVA 最大的優(yōu)勢。當(dāng)其他語言編寫的程序面臨因?yàn)椴僮飨到y(tǒng)的變化、處理器升級(jí)以與核心系統(tǒng)資源的變化而導(dǎo)致程序出現(xiàn)錯(cuò)誤或無法運(yùn)行的困境時(shí),JAVA 虛擬機(jī)成功地解決了這個(gè)問題,實(shí)現(xiàn)了“一次編成,處處運(yùn)行”的目標(biāo)4。 2、多線程線程是程序中一個(gè)單一的順序控制流程 ,所謂的多線程就是指 在單個(gè)程序中同 . . . III / 86時(shí)運(yùn)行多個(gè)線程完成不同的工作 。線程機(jī)制是 JAVA 的又一大亮點(diǎn),通過使用多線程可以分別用不同的線程完成特定的行為,而不需要采用全局的事件循環(huán)機(jī)制,這樣就很容易實(shí)現(xiàn)網(wǎng)絡(luò)上實(shí)時(shí)的交互行為,通過提高資源使用效率 進(jìn)而提高系統(tǒng)

20、的 效率。3、簡單一方面 JAVA 語言的語法與其他語言很接近,所以大多數(shù)學(xué)者很容易學(xué)習(xí)和使用JAVA。另一方面 JAVA 丟棄了其他語言中很少使用的、令人難以理解的的特性。并且 JAVA語言提供了自動(dòng)垃圾回收機(jī)制,程序員不必單獨(dú)考慮存管理的問題5。4、豐富的類庫和網(wǎng)絡(luò)功能JAVA 類庫就是一些已寫好、可供調(diào)用的類的集合,JAVA 將這些類整理在一個(gè)個(gè)包中,每一包里都包含一些特定功能的類和接口,當(dāng)這些包被用 import 引入程序后,用戶就可以訪問包中類和接口,不需要再重新設(shè)計(jì)。2.2J2ME2.2J2ME2.2.1J2ME 概念美國 Sun 公司是 IT 界為全球用戶提供最具實(shí)力的硬件、 軟

21、件與服務(wù)的領(lǐng)先供應(yīng)商,而 J2ME 是 Sun 公司專門針對(duì)嵌入式、消費(fèi)類電子產(chǎn)品推出的開發(fā)平臺(tái),是一種高度優(yōu)化的運(yùn)行環(huán)境。J2ME 的另一種稱法是 JAVA ME,是 JAVA 的一個(gè)組成部分,與J2SE、J2EE 并稱。由于 JAVA 的跨平臺(tái)性,遵循 J2ME 規(guī)開發(fā)的 JAVA 程序可以移植到各種不同的小型電子設(shè)備上,允許移動(dòng)無線設(shè)備之間共享應(yīng)用程序。2.2.2J2ME 架構(gòu)J2ME 架構(gòu)從上至下分為簡表(Profile)、配置(Configuration)和主機(jī)操作系統(tǒng)(HostOperating System)6,如圖 1。 . . . IV / 86圖 1J2ME 架構(gòu)1、簡表簡

22、表(Profile)是專門針對(duì)某種特定的設(shè)備而制定的功能接口。它為一樣消費(fèi)電子設(shè)備的不同的生產(chǎn)商提供了標(biāo)準(zhǔn)化的 JAVA 類庫,現(xiàn)今已經(jīng)有五個(gè)簡表有了規(guī),分別是Mobile information devices profile (MIDP)、Personal digital assistant profile、Foundation profile、Personal profile、RMI profile。本系統(tǒng)主要利用的簡表是 MIDP,它定義了一個(gè)標(biāo)準(zhǔn) JAVA API 集合。2、配置JAVA 是邊解釋邊運(yùn)行的程序,所有的程序都被編譯成二進(jìn)制代碼并運(yùn)行在 JAVA 虛擬機(jī)(JVM,JAVA

23、 Virtual Machine)上,而配置決定了所使用的 JVM。配置包括核心庫、虛擬機(jī)等。當(dāng)前 J2ME 存在兩種配置:CDC(Connected Device Configuration,連接設(shè)備配置)、CLCD(Connected limited device configuration,有限連接設(shè)置配置)。CDC 面向強(qiáng)大的可以間歇式地與網(wǎng)絡(luò)連接的設(shè)備,即有穩(wěn)定的電源供應(yīng)、設(shè)備性能強(qiáng)勁的設(shè)備;CLCD 面向微型設(shè)備和嵌入式設(shè)備。JAVA 虛擬機(jī)是所用 JAVA程序的基礎(chǔ),在手機(jī)出廠前已經(jīng)固化在手機(jī)中了7。配置與簡表一起提供了一個(gè)面向移動(dòng)信息設(shè)備的完整J2ME 應(yīng)用程序運(yùn)行環(huán)境。3、主

24、機(jī)操作系統(tǒng) 主機(jī)操作系統(tǒng)是在物理計(jì)算機(jī)上運(yùn)行的操作系統(tǒng),在它之上運(yùn)行虛擬機(jī)軟件。2.2.3J2ME 開發(fā)流程1、J2ME 開發(fā)的第一步就是要詳細(xì)了解客戶的需求,針對(duì)客戶的需求來編寫適合客戶的應(yīng)用軟件。2、配置自己的開發(fā)環(huán)境,然后進(jìn)行編碼,生成.JAVA 文件。3、對(duì).JAVA 文件進(jìn)行編譯,生成.class 文件。4、打包成.jar 文件,下載發(fā)布到移動(dòng)設(shè)備上8。開發(fā)步驟如圖 2。 . . . V / 86 圖 2J2ME 開發(fā)步驟2.2.4J2ME 的優(yōu)勢與 J2SE 和 J2EE 相比,J2ME 不是一個(gè)單獨(dú)的技術(shù)規(guī),而是一系列技術(shù)規(guī)的總稱,其總體的的運(yùn)行環(huán)境和目標(biāo)也更加多樣化,具有獨(dú)特的

25、優(yōu)勢。首先,J2ME 是為了使用有限的電力、網(wǎng)絡(luò)連接以與有限圖形界面設(shè)計(jì)用戶的開發(fā),通過剪裁某些小型設(shè)備上不需要的功能,以達(dá)到減少 JAVA 虛擬機(jī)體積以與相應(yīng)運(yùn)行庫體積的目的,目標(biāo)是為小型設(shè)備提供資源利用率高的可開發(fā)環(huán)境。其次,J2ME 將 JAVA 的“一次編寫,處處運(yùn)行”的設(shè)計(jì)理念擴(kuò)展到無限領(lǐng)域。對(duì)于程序開發(fā)員而言,只要手機(jī)安裝了 JAVA 虛擬機(jī)即可執(zhí)行 JAVA 程序,提高程序的一致性;對(duì)用戶而言,也不必?fù)?dān)心下載的程序無法運(yùn)行。最后,無線設(shè)備上大多數(shù)的現(xiàn)有程序都是置的且功能固定的,沒有制造商的參與很難進(jìn)行軟件安裝與升級(jí)。J2ME 提供了動(dòng)態(tài)部署機(jī)制,可以通過無線網(wǎng)絡(luò)下載和安裝程序。不

26、僅為廠商和開發(fā)者提供了低成本的軟件產(chǎn)品發(fā)布方式,還允許用戶按需動(dòng)態(tài)地下載并個(gè)性化定制自己的程序。2.3Mysql2.3Mysql 數(shù)據(jù)庫數(shù)據(jù)庫2.3.1 數(shù)據(jù)庫數(shù)據(jù)(Data)是用物理符號(hào)記錄下來的可以識(shí)別的信息,不同的物理符號(hào)體現(xiàn)出數(shù)據(jù)的不同表現(xiàn)形式,如數(shù)字、圖形、文字等,而數(shù)據(jù)庫(DB,Database)就是長期存儲(chǔ) . . . VI / 86在計(jì)算機(jī)的數(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ù)庫中的一種,它是一個(gè)小型開放源代碼的 關(guān)系型數(shù)據(jù)

27、庫管理系統(tǒng),最常用的數(shù)據(jù)庫管理語言 是結(jié)構(gòu)化查詢語言 SQL。2.3.3Mysql 數(shù)據(jù)庫特點(diǎn)與其他數(shù)據(jù)庫相比,Mysql 數(shù)據(jù)庫具有以下特點(diǎn):1、是目前市場上運(yùn)行速度最快的數(shù)據(jù)庫系統(tǒng)。2、提供 TCP/IP、ODBC 和 JDBC 等多種數(shù)據(jù)庫連接途徑 。3、同時(shí)訪問數(shù)據(jù)庫的用戶數(shù)量不受限制。4、可以處理上千萬條記錄。5、支持多線程。正因?yàn)?Mysql 具有的這些特點(diǎn),所以被許多中小型選為數(shù)據(jù)庫10。 . . . VII / 862.42.4 關(guān)鍵技術(shù)關(guān)鍵技術(shù)2.4.1 多線程技術(shù)線程是程序中一個(gè)單一的順序控制流程 ,每個(gè)線程共享其所附屬的進(jìn)程的所有資源,多線程就是指在單個(gè)程序中同時(shí)運(yùn)行多個(gè)

28、線程完成不同的工作 。當(dāng)多線程執(zhí)行時(shí),該程序?qū)?yīng)的進(jìn)程就有多個(gè)控制流在同時(shí)運(yùn)行,意味著一個(gè)程序的多條執(zhí)行語句同時(shí)執(zhí)行。多線程技術(shù)使系統(tǒng)速度更快、通信實(shí)現(xiàn)更容易11。2.4.2 序列化和反序列化1、序列化數(shù)據(jù)序列化是將對(duì)象轉(zhuǎn)換為二進(jìn)制數(shù)據(jù)流的一種方法,這種轉(zhuǎn)換可以使對(duì)象保存在文件中或在網(wǎng)絡(luò)中傳輸。2、反序列化反序列化是序列化的相反過程,即在另一程序中打開字節(jié)流并重構(gòu)對(duì)象。這兩個(gè)過程結(jié)合起來使得數(shù)據(jù)能被輕松傳輸和存儲(chǔ),簡化了對(duì)象持久化的實(shí)現(xiàn)。2.4.3 無線網(wǎng)絡(luò)開發(fā)技術(shù)1、GCF由于受移動(dòng)信息設(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é)議,其工作機(jī)制是請(qǐng)求和響應(yīng),也就是說當(dāng)用戶輸入了一個(gè)的地址,其實(shí)質(zhì)就是發(fā)送了一個(gè)請(qǐng)求,那這時(shí)瀏覽就會(huì)給予響應(yīng),返回給用戶所需要的頁面。一個(gè) 連接會(huì)經(jīng)過三種狀態(tài):setup、connected、closed。當(dāng)一個(gè) 被打開,但請(qǐng)求未發(fā)送之前為 setup 狀態(tài),這時(shí)應(yīng)用程序設(shè)置與服務(wù)器進(jìn)行連接的各種信息,用setRequestMethod 和 setRequestProperty 兩種方法完成。在 被打開

30、和被關(guān)閉之間為connected 狀態(tài)。連接關(guān)閉時(shí),就進(jìn)入了 closed 狀態(tài)12。2.4.4GPRS 技術(shù)GPRS,通用分組無線服務(wù)(General Packet Radio Service),是一種基于全球移動(dòng)通信系統(tǒng)(GSM,Global System for Mobile Communications)的無線分組交換技術(shù),其實(shí)現(xiàn)的方法就是以“分組”的形式將數(shù)據(jù)信息傳送到用戶端。GPRS 工作時(shí),它在移動(dòng)用戶和數(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ǔ)。它定義了一個(gè)底層的 API,用來支持獨(dú)立任何特定 SQL 實(shí)現(xiàn)基本 SQL 功能。其主要特點(diǎn)是與任何關(guān)系式數(shù)據(jù)庫協(xié)同工作的方式完全一樣,在許多不同的數(shù)據(jù)庫連接模塊的頂端提供 . . . IX / 86了統(tǒng)一的接口,也就是說,訪問所有數(shù)據(jù)庫時(shí)無需分別寫程序。在創(chuàng)建數(shù)據(jù)庫之前必須先加載JDBC驅(qū)動(dòng),然后才可以創(chuàng)建數(shù)據(jù)庫連接,與數(shù)據(jù)庫建立連接后,應(yīng)用程序在此連接上可創(chuàng)建SQL語句對(duì)象,以便執(zhí)行用戶定義的特定SQL語句。執(zhí)行后的SQL語句將返回結(jié)果,查詢語句返回的是一個(gè)結(jié)果集對(duì)象,然后用next()

32、方法在記錄中移動(dòng)游標(biāo)定位結(jié)果集中的記錄。最后關(guān)閉數(shù)據(jù)庫連接14。JDBC使用流程如圖5。圖 5JDBC 連接數(shù)據(jù)庫流程2.4.6 域名解析技術(shù)IP地址是網(wǎng)路上標(biāo)識(shí)站點(diǎn)的數(shù)字地址,其重要性可想而知,但比起IP地址,現(xiàn)實(shí)生活中在使用網(wǎng)絡(luò)資源時(shí)人們更熟識(shí)的是域名。例如學(xué)院的IP為“5”,而我們通常用域名“”來代替IP地址,這是便于記憶的一種方式。反過來說,當(dāng)我們注冊了域名后,只對(duì)自己的域名具有使用權(quán),只有解析成IP才可使用。域名的解析工作由DNS服務(wù)器完成,分為靜態(tài)和動(dòng)態(tài)兩種。本系統(tǒng)所運(yùn)用的是動(dòng)態(tài)域名解析,即將固定的互聯(lián)網(wǎng)域名和動(dòng)態(tài) IP地址實(shí)時(shí)對(duì)應(yīng)解析的服務(wù)。相對(duì)于傳統(tǒng)的

33、靜態(tài)DNS而言,它可以將一個(gè)固定的域名解析到一個(gè)動(dòng)態(tài)的 IP地址,不管用戶何時(shí) 何地、以何種方式上網(wǎng)、 IP地址是否變化 ,都能保證通過一個(gè)固定的域名就能訪問到用戶的計(jì)算機(jī)15。 . . . 10 / 86第三章第三章 系統(tǒng)的配置與使用系統(tǒng)的配置與使用開發(fā)之前,首先準(zhǔn)備一下自己的開發(fā)環(huán)境。設(shè)計(jì)本系統(tǒng)時(shí)需要硬件和軟件兩方面的配置。3.13.1 硬件環(huán)境配置硬件環(huán)境配置安裝 Windows xp 操作系統(tǒng)的三星筆記本電腦一臺(tái),開通 GPRS、型號(hào)為 OPPO A125 的手機(jī)一部。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)選擇安裝容與路徑。中間列表是要安裝的可選功能,單擊每個(gè)可選功能左邊的按鈕,將彈出下拉菜單,我們選擇系統(tǒng)默認(rèn)的第一項(xiàng)“此功能將安裝在本地硬盤驅(qū)動(dòng)器上”。安裝路徑選擇“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)屬性”,選擇“高級(jí)”選項(xiàng)卡,單擊“環(huán)境變量”按鈕,打開“環(huán)境變量”對(duì)話框。(2)單擊“用戶變量”中的“新建”按鈕,打開“新建系統(tǒng)變量”對(duì)話框,將變量名設(shè)置為 JAVA_HOME,變量值設(shè)置為 JDK 安裝目錄“D:JDK”。(3)新建一個(gè)系統(tǒng)變量,變量名設(shè)置為 classpath,變量值設(shè)置為“.D:JDKlib;D:JDKlibtools.jar;D:JDKlibservle

36、t-api.jar”,表示搜索 JAVA 類的路徑,包含一些 Jar 歸檔文件相應(yīng)的目錄,JAVA 程序執(zhí)行時(shí)往往會(huì)從 classpath 中選擇并添加自己需要的類路徑。變量值最前面的“.”表示當(dāng)前路徑不同值之間用“;”隔開。(4)新建一個(gè)系統(tǒng)變量,變量名設(shè)置為 Path,變量值設(shè)置為“D:JDKbin”。(5)環(huán)境測試:單擊“開始”-“運(yù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ū)?dòng)界面,選擇配置方式“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”選項(xiàng)。設(shè)置 Port Number 值為 3306,單擊“Next”。(6)設(shè)置字符集。選擇第三項(xiàng),在 Character Set 下拉框里選擇“gbk”,單擊“Next”。(7)注冊數(shù)據(jù)庫。選中“Install As Windows Service”選項(xiàng),單

40、擊“Next”。(8)權(quán)限設(shè)置?!癗ew root password”項(xiàng)填寫新密碼,“Confirm”重輸一次密碼。設(shè)置完畢單擊“Next”按鈕直至出現(xiàn) finish,單擊“finish”。Mysql 安裝完畢19。如圖 7。 . . . 13 / 86圖 7 Mysql 安裝完成 . . . 14 / 86第四章第四章 手機(jī)水電費(fèi)查詢系統(tǒng)分析手機(jī)水電費(fèi)查詢系統(tǒng)分析4.14.1 系統(tǒng)需求分析系統(tǒng)需求分析隨著人們生活水平的不斷提高,手機(jī)逐步成為被大眾依賴的通信工具,如果能夠開發(fā)出一套水電費(fèi)查詢系統(tǒng)使用戶能夠使用手機(jī)就進(jìn)行信息查詢、繳納與設(shè)置,不僅給用戶帶來方便,也可以給水電部門節(jié)約成本。所以本系

41、統(tǒng)無論從實(shí)用性還是從市場前景方面考慮,都是非常必要的20。4.24.2 系統(tǒng)功能分析系統(tǒng)功能分析根據(jù)使用對(duì)象不同,系統(tǒng)可以實(shí)現(xiàn)不同的功能。當(dāng)使用對(duì)象為抄表員時(shí),可以實(shí)現(xiàn)登錄、抄表的功能。當(dāng)使用對(duì)象為普通用戶時(shí)可以完成登錄、繳費(fèi)、查詢、設(shè)置賬戶信息等功能。1、抄表員首先,當(dāng)抄表員進(jìn)入系統(tǒng),輸入正確的用戶賬號(hào)和密碼后即可登錄成功,用戶不存在或密碼不正確均不可登錄并提示錯(cuò)誤。登錄成功后的抄表員可以輸入用戶的水電費(fèi)使用情況,系統(tǒng)會(huì)將數(shù)據(jù)發(fā)送給數(shù)據(jù)庫端,并將數(shù)據(jù)添加到用戶的消費(fèi)表中。2、普通用戶首先,和抄表員一樣,當(dāng)用戶進(jìn)入系統(tǒng),輸入正確的用戶賬號(hào)和密碼后即可登錄成功,用戶不存在或密碼不正確均不可登錄并

42、提示錯(cuò)誤。用戶登錄成功后可以進(jìn)行功能選擇,可供選擇的功能有繳費(fèi)、查詢和設(shè)置賬戶信息。當(dāng)用戶選擇繳費(fèi)功能時(shí),系統(tǒng)會(huì)自動(dòng)獲取當(dāng)前時(shí)間,提醒用戶所欠的水費(fèi)、電費(fèi)、賬戶余額以與銀行卡余額,用戶可根據(jù)信息提示輸入所繳納的費(fèi)用。當(dāng)用戶選擇查詢功能,用戶可進(jìn)行個(gè)人信息查詢、水電費(fèi)消費(fèi)記錄查詢和繳費(fèi)記錄查詢。個(gè)人信息包括用戶名、用戶賬號(hào)、聯(lián)系、賬戶余額和銀行卡余額。如果進(jìn)行消費(fèi)和繳費(fèi)記錄查詢,用戶輸入時(shí)間即可查到相關(guān)信息。如果想查全部消費(fèi)或繳費(fèi)信息就無需輸入時(shí)間;想查一年的信息輸入年份,如“2011” ,就可以查到 2011 這一年的信息了; . . . 15 / 86想查某個(gè)月的信息就輸入年份和月份,如“2

43、01104” ,就可以查到 2011 年 4 月份的信息了。當(dāng)用戶需要修改登錄密碼、用戶、聯(lián)系時(shí),可以在登錄后選擇設(shè)置賬戶信息功能。如選擇修改密碼,用戶只要輸入正確的原始密碼、新密碼以與新密碼確認(rèn)就可修改成功。4.34.3 系統(tǒng)架構(gòu)系統(tǒng)架構(gòu)系統(tǒng)采用 MVC 設(shè)計(jì)模式。視圖層負(fù)責(zé)和用戶交互,然后把模型層的數(shù)據(jù)顯示到頁面上,當(dāng)模型層變化的時(shí)候,能實(shí)現(xiàn)自動(dòng)更新,它也負(fù)責(zé)把視圖層的數(shù)據(jù)傳送給控制器。控制器主要負(fù)責(zé)程序的跳轉(zhuǎn),處理客戶的請(qǐng)求,調(diào)用模型層進(jìn)行處理。模型層負(fù)責(zé)執(zhí)行具體的商業(yè)邏輯21。具體來說,就是客戶端程序通過 向服務(wù)器端發(fā)送請(qǐng)求,服務(wù)器接受并解析請(qǐng)求后向數(shù)據(jù)庫查詢相關(guān)信息,然后將結(jié)果返回給

44、客戶端。系統(tǒng)整體架構(gòu)如圖 8。圖 8 系統(tǒng)整體架構(gòu)在客戶端和服務(wù)器端交換的信息過程中,需要交互很多信息,但是通過方式與服務(wù)器進(jìn)行網(wǎng)絡(luò)傳輸時(shí)只能傳輸二進(jìn)制數(shù)據(jù)。所以需要把對(duì)象進(jìn)行序列化,因此需要把要交互的信息以序列化的方式編寫成多個(gè)類,這些類是客戶端與服務(wù)器端都需要使用的。一個(gè)手機(jī)的 MIDP 客戶端開發(fā)包和服務(wù)器端開發(fā)包都需要調(diào)用通用的信息傳遞包。如圖 9。圖 9 交互信息 . . . 16 / 86第五章第五章 公共類設(shè)計(jì)公共類設(shè)計(jì)為了提高系統(tǒng)的可維護(hù)性和可重用性,可以設(shè)計(jì)一些公共類,在客戶端程序和服務(wù)器端同時(shí)使用,在這些類中對(duì)對(duì)象進(jìn)行序列化和反序列化。5.15.1 用戶信息類的設(shè)計(jì)用戶信息

45、類的設(shè)計(jì)5.1.1 類圖圖 10UserInfo 類圖5.1.2 類的結(jié)構(gòu)用戶信息類 UserInfo 用來封裝用戶的用戶 ID、用戶密碼、用戶名、銀行卡號(hào)、 、賬戶余額、性別等信息。private String userID = ;/用戶 IDprivate String password = ;/用戶密碼private String userName = ;/用戶名private String bankID = ;/銀行卡號(hào)private String phoneNum = ;/private float accountmoney =0;/賬戶余額private int sex = 0;

46、/性別 . . . 17 / 865.1.3 核心代碼實(shí)現(xiàn)用戶信息類 UserInfo 的核心代碼為:public String getUserID() return userID;public void setUserID(String userID) this.userID = userID;/Password、userName、bankID、phoneNum、accountmoney、sex 的實(shí)現(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è)計(jì)抄表員信息類的設(shè)計(jì)5.2.1 類圖圖 11WorkerInfo 類圖 . . . 18 / 865.2.2 類的結(jié)構(gòu)抄表員信息類 WorkerInfo 用來封裝抄表員的用戶賬號(hào)、用戶密碼、用戶名、性別、等信息。privat

49、e String workerID = ;/用戶賬號(hào)private String workerPassword = ;/用戶密碼private String workerName=;/用戶名private String sex = ;/性別private String phoneNum = ;/5.2.3 核心代碼實(shí)現(xiàn)抄表員信息類 WorkerInfo 的核心代碼為:public void setworkerID(String workerID) this.workerID = workerID;public String getworkerID() return workerID;/ wor

50、kerPassword、workerName、sex、phoneNum 的實(shí)現(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è)計(jì)銀行卡類的設(shè)計(jì)5.3.1 類圖

52、 . . . 19 / 86圖 12BankcardInfo 類圖5.3.2 類的結(jié)構(gòu)銀行卡類 BankcardInfo 用來封裝用戶銀行卡的銀行卡號(hào)、持卡人、卡余額、等信息。private String bankID = ;/銀行卡號(hào)private String userName = ;/持卡人private String money = ;/卡余額private String phoneNum = ;/5.3.3 核心代碼實(shí)現(xiàn)銀行卡類 BankcardInfo 的核心代碼為:public void setbankID(String bankID) this.bankID = bankID;

53、public String getbankID() return bankID;/userName、money、phoneNum 的實(shí)現(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 繳費(fèi)類的設(shè)計(jì)繳費(fèi)類的設(shè)計(jì)5.4.1 類圖圖 13

55、PayInfo 類圖5.4.2 類的結(jié)構(gòu)繳費(fèi)類 PayInfo 用來封裝繳費(fèi)信息的賬單號(hào)、用戶 ID、繳費(fèi)日期、水費(fèi)、電費(fèi)等信息。private int billID = 0;/賬單號(hào)private String userID = ;/用戶 IDprivate String billDate = ;/繳費(fèi)日期private float shuifei = 0;/水費(fèi)private float dianfei = 0;/電費(fèi)5.4.3 核心代碼實(shí)現(xiàn)繳費(fèi)類 PayInfo 的核心代碼為:public void set userID (String userID) . . . 21 / 86this

56、. userID = userID;public String ge userID () return userID;/billDate、shuifei、dianfei 的實(shí)現(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 消費(fèi)類的設(shè)計(jì)消費(fèi)類的設(shè)計(jì)5.5.1

58、 類圖圖 14 ConsumeInfo 類圖5.5.2 類的結(jié)構(gòu)消費(fèi)類 ConsumeInfo 用來封裝消費(fèi)信息的賬單號(hào)、用戶 ID、消費(fèi)日期、消費(fèi)的水費(fèi)、消費(fèi)的電費(fèi)等信息。private int billID =0;/賬單號(hào) . . . 22 / 86private String userID = ;/用戶 IDprivate String bill_date = ;/消費(fèi)日期private float shuifei =0;/消費(fèi)的水費(fèi)private float dianfei =0;/消費(fèi)的電費(fèi)5.5.3 核心代碼實(shí)現(xiàn)消費(fèi)類 ConsumeInfo 的核心代碼如下:public void

59、 set billID (String billID) this. billID = billID;public String ge billID () return billID;/ bill_date、shuifei、dianfei 的實(shí)現(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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論