版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 基于JAVA的無線人員定位管理軟件設(shè)計</p><p><b> 摘 要</b></p><p> 近年來,隨著監(jiān)獄在押人員的不斷上升,僅依靠傳統(tǒng)的視頻監(jiān)控或門禁報警系統(tǒng)已顯得獨木難支,不能做到全方位、多功能的監(jiān)控。因此 ,提高看守所安防管理水平,建立綜合高效的信息監(jiān)管平臺已成必然趨勢。</p><p> 本課題研
2、究的主要內(nèi)容是設(shè)計一個無線人員定位管理軟件,此軟件具有對看守所在押人員的基本信息的增加、查詢、刪除、修改,人員路徑再現(xiàn)以及用戶帳戶管理等功能。本軟件以流行的Java語言為開發(fā)語言,以開源的Eclipse為開發(fā)開臺,以免費的MySQL作為后臺開發(fā)數(shù)據(jù)庫,并利用引路蜂地圖開發(fā)包實現(xiàn)人員定位功能的一個跨平臺的人員管理系統(tǒng)。</p><p> 本文首先對Java程序編程的基礎(chǔ)知識,JDBC數(shù)據(jù)庫技術(shù),圖形界面開發(fā)技術(shù),
3、引路蜂地圖開發(fā)包等軟件開發(fā)的相關(guān)技術(shù)做出了簡單的介紹。在此基礎(chǔ)之上,介紹了本課題的創(chuàng)新點,給出了軟件的總體設(shè)計方案和各功能模塊的實現(xiàn)。</p><p> 關(guān)鍵詞:無線定位;Java;引路蜂;JDBC;Eclipse;跨平臺</p><p><b> Abstract</b></p><p> In recent years, with t
4、he number of prisoners on the rise, we can not only relay on the traditional video surveillance or access control alarm system for they cannot do the all-round, multi-function monitoring. Therefore, it has become an inev
5、itable trend to establish a comprehensive and efficient monitoring platform to improve the detention center security management level.</p><p> The main content of this research project is to design a wirele
6、ss positioning management software. The software has the function of add, query, delete, modify and export the basic information held in detention center. What’s more, it also has user account management function. The cr
7、oss-platform personnel management system is a software that uses Java as a develop language, the open source Eclipse as Integrated Development Environment, the free MySQL as development database, and the Guidebee Map <
8、;/p><p> First I make ??a brief introduction to Java programming, the JDBC database technology, Graphical User Interface programing, and Guidebee Map development technology. On this basis, I give the overall d
9、esign of the software and the design of each functional module.</p><p> Key words: wireless positing; Java; Guidebee Map; JDBC; Eclipse; cross-platform</p><p><b> 目 錄</b></p>
10、;<p><b> 摘 要</b></p><p><b> Abstract</b></p><p><b> 第1章 緒論1</b></p><p> 1.1 課題意義及目的1</p><p> 1.2 課題主要研究的內(nèi)容1</p>
11、;<p> 第2章 軟件開發(fā)相關(guān)技術(shù)介紹3</p><p> 2.1 Java程序編程基礎(chǔ)3</p><p> 2.1.1 Java的起源及其發(fā)展3</p><p> 2.1.2 Java程序運行原理3</p><p> 2.2 Eclipse開發(fā)平臺5</p><p> 2.3數(shù)據(jù)
12、庫技術(shù)6</p><p> 2.2.1 SQL語言概述6</p><p> 2.2.2 JDBC模型7</p><p> 2.2.3 JDBC的工作方式8</p><p> 2.2.4 MySQL數(shù)據(jù)庫10</p><p> 2.4 圖形界面開發(fā)技術(shù)10</p><p>
13、 2.4.1 Swing組件類的層次11</p><p> 2.4.2 Swing事件處理機(jī)制13</p><p> 2.4.3 Swing中的布局管理13</p><p> 2.4.4 設(shè)置應(yīng)用程序外觀16</p><p> 2.5 引路蜂電子地圖開發(fā)技術(shù)17</p><p> 2.5.1引路蜂地
14、圖API概述17</p><p> 2.5.2地圖開發(fā)包類的定義18</p><p> 2.5.3地圖對象類的層次關(guān)系20</p><p> 2.5.4地圖圖片讀取類層次關(guān)系21</p><p> 2.5.5圖形子系統(tǒng)22</p><p> 2.5.6地圖配置24</p><p
15、> 第3章 系統(tǒng)總體設(shè)計25</p><p> 3.1系統(tǒng)功能描述25</p><p> 3.2軟件總體設(shè)計26</p><p> 3.2.1 軟件總體結(jié)構(gòu)圖26</p><p> 3.2.2系統(tǒng)開發(fā)原則26</p><p> 3.3系統(tǒng)的通信協(xié)議27</p><p&g
16、t; 第4章 軟件各模塊的實現(xiàn)28</p><p> 4.1用戶登錄的設(shè)計28</p><p> 4.2在押人員管理模塊設(shè)計28</p><p> 4.2.1查詢在押人員信息模塊29</p><p> 4.2.2新增在押人員信息模塊30</p><p> 4.3.3修改在押人員基本信息模塊30&
17、lt;/p><p> 4.3.4刪除在押人員信息模塊31</p><p> 4.3.5導(dǎo)出在押人員信息模塊32</p><p> 4.2.6顯示在押人員路徑模塊32</p><p> 4.3用戶管理模塊設(shè)計33</p><p> 4.3.1增加帳戶模塊34</p><p> 4
18、.3.2刪除帳戶模塊34</p><p> 4.3.3修改帳戶密碼模塊35</p><p> 4.4數(shù)據(jù)庫中表的設(shè)計35</p><p> 4.5本章小結(jié)38</p><p> 第5章 項目創(chuàng)新點39</p><p> 5.1 軟件的平臺無關(guān)性39</p><p> 5.
19、2 基于桌面系統(tǒng)的Java地圖應(yīng)用39</p><p> 5.3 采用最新的地圖顯示技術(shù)39</p><p> 第6章 結(jié)束語39</p><p><b> 參考文獻(xiàn)41</b></p><p><b> 致 謝42</b></p><p><b&g
20、t; 第1章 緒論</b></p><p> 1.1 課題意義及目的</p><p> 近年來,雖然監(jiān)控技術(shù)高速發(fā)展,但看守所中在押人員的狡詐意識也逐漸增強,犯罪種類有增無減,常常出現(xiàn)聚眾斗毆、自殘、逃跑等現(xiàn)象,因此,提高看守所安防管理水平,建立綜合高效的信息監(jiān)管平臺已成必然趨勢[1]。</p><p> 目前,已有的安防系統(tǒng)大都只能實現(xiàn)對定點人
21、群的定位,無法對移動人群進(jìn)行定位,因此對于出逃在外的在押人員,監(jiān)管人員無法判斷其出逃方向,更無法獲得其出逃路線,不利于高效地追捕。因此,設(shè)計一套無線人員定位管理系統(tǒng),可以解決移動人群的追蹤定位問題,具有廣泛的社會需求和廣闊的市場前景。</p><p> 在信息技術(shù)不斷發(fā)展的今天,利用無線人員定位管理系統(tǒng),能夠有效地監(jiān)控高危在押人員,防止在押人員的出逃,追查及跟進(jìn)暴力事件的發(fā)生,最大限度的保障監(jiān)管人員和在押人員的
22、人身安全,并促進(jìn)監(jiān)獄安全技術(shù)防范系統(tǒng)向集成化、網(wǎng)絡(luò)化、智能化的進(jìn)一步發(fā)展,具有一定的創(chuàng)新意義及實用價值。</p><p> 1.2 課題主要研究的內(nèi)容</p><p> 本課題以 Windows XP為開發(fā)平臺,以Java為開發(fā)語言,以Eclipse作為集成開發(fā)工具,MySQL作為后臺開發(fā)數(shù)據(jù)庫。本文從上位機(jī)軟件出發(fā),利用面向?qū)ο蟆?shù)據(jù)庫、Swing、多線程等技術(shù),采用引路蜂的J2SE
23、地圖開發(fā)包,設(shè)計并實現(xiàn)無線人員定位管理系統(tǒng)軟件。此軟件具有看守所在押人員的基本信息閱覽、新增、查詢、刪除、修改,人員路徑再現(xiàn)以及用戶帳戶管理的功能。通過這個軟件查看每個在押人員的基本信息,并進(jìn)行修改,并且可以結(jié)合引路蜂地圖,查看在押人員的行進(jìn)路線。為了提升系統(tǒng)的安全性,所有用戶只有在登錄后才可以使用本系統(tǒng)。同時,為了方便不同的人員對在押人員進(jìn)行管理,軟件中設(shè)置了帳戶管理的功能。</p><p> 本論文的主要研
24、究內(nèi)容如下:</p><p> (l)學(xué)習(xí)和掌握J(rèn)ava編程語言、Eclipse開發(fā)平臺、JDBC數(shù)據(jù)庫技術(shù)、Swing應(yīng)用程序開發(fā)包和引路蜂地圖開發(fā)包的使用。</p><p> (2)分析整個無線定位管理軟件系統(tǒng)的總體框架及其功能特點。</p><p> (3)根據(jù)用戶需求設(shè)計出無線定位管理軟件系統(tǒng),給管理人員提供可視化界面,實現(xiàn)對看守所在押人員的基本信息的
25、閱覽、新增、查詢、刪除、修改,人員路徑再現(xiàn)等功能。</p><p> (4)對軟件進(jìn)行現(xiàn)場測試,以驗證設(shè)計的可行性、準(zhǔn)確性和優(yōu)越性。</p><p> 第2章 軟件開發(fā)相關(guān)技術(shù)介紹</p><p> 2.1 Java程序編程基礎(chǔ)</p><p> 2.1.1 Java的起源及其發(fā)展</p><p> Java
26、是Sun公司開發(fā)出來的一套編程語言,最早來源于一個叫Green的項目。這個項目原來的目的是為家用電子消費產(chǎn)品開發(fā)一個分布式的代碼系統(tǒng),這樣就可以通過網(wǎng)絡(luò)對家用電器進(jìn)行控制。開始Sun公司的工程師準(zhǔn)備采用C++[2],但由于C++過于復(fù)雜,安全性差,最后決定基于C++開發(fā)一種新語言(Oak語言)。Oak是一種用于網(wǎng)絡(luò) ,精巧而安全的語言,Sun公司曾以此投標(biāo)過一個交互式電視項目,結(jié)果被SGI打敗。恰巧此時Mark Andreessen開發(fā)
27、的Mosaic和Netscape啟發(fā)了Oak的成員,Sun的工程師們用Java編制了HotJava瀏覽器,觸發(fā)了Sun進(jìn)軍Internet[3]。</p><p> Java語言發(fā)展到至今經(jīng)歷了一系列的過程,Java在1995年5月23日推出了JDK 1.0版本,此版本標(biāo)志著Java正式進(jìn)軍Internet的開始。在1998年,Sun公司推出了JDK 1.2開發(fā)包,該版本加入了大量的輕量級組件,從此以后Java
28、正式被命名為JDK 2。在此之后,Sun公司也陸續(xù)發(fā)布了一系列的Java開發(fā)包版本,目前最新版本的JDK為JDK 7[4]。</p><p> 2.1.2 Java程序運行原理</p><p> Java中有兩類應(yīng)用程序,一類是有自己獨立運行入口點的Java應(yīng)用程序,另一類是嵌入在Web頁面中由Web瀏覽器來控制運行的Java小程序(Applet[5])。在運行時,它們都需要Java運
29、行系統(tǒng)的支持,對于Java運行程序,Java運行系統(tǒng)一般是指Java解析器;而對于Applet, Java運行系統(tǒng)一般是指運行Applet的與Java相兼容的Web瀏覽器,并且其中包含了支持Applet運行的環(huán)境。</p><p> Java運行系統(tǒng)的功能是對字節(jié)碼進(jìn)行解析和執(zhí)行,其工作過程可以分為以下三步。</p><p> ?。?)由類裝載器完成字節(jié)碼的裝載。在裝載過程中,程序運行時
30、所需要的所有代碼都被裝載。完成后,節(jié)節(jié)碼中便保留了地址的符號引用信息,運行系統(tǒng)通過建立的地址符號引用信息與內(nèi)存之間的對照來確定程序的內(nèi)存分配。</p><p> ?。?)由字節(jié)碼檢驗器對字節(jié)碼進(jìn)行安全性檢查。這種檢查可以排除字節(jié)碼中可能存在的違反訪問權(quán)限,不規(guī)范數(shù)據(jù)類型以及非法調(diào)用等問題。</p><p> ?。?)字節(jié)碼的翻譯和執(zhí)行。Java字節(jié)碼的運行可能有兩種方式,一種是通過代碼生成
31、器,先將字節(jié)碼翻譯成適用于本系統(tǒng)的機(jī)器碼,然后再送到硬件去執(zhí)行,這是一種編譯性工作方式。另一種是通過解析器將字節(jié)碼翻譯成機(jī)器碼,然后由即時運行部件將機(jī)器碼送到硬件去執(zhí)行,這是一種解析性工作方式。Java運行系統(tǒng)一般采用第二種工作方式,只有對那些運行速度要求較高,才采用編譯性工作方式,這時就需要使用特定的代碼生成器來完成編譯,從而保證Java程序代碼的高性能[6]。</p><p> 2.2 Eclipse開發(fā)平
32、臺</p><p> Eclipse是一個開放源代碼的,基于Java的可擴(kuò)展開發(fā)平臺,它通過插件組件構(gòu)成開發(fā)環(huán)境。Eclipse附帶了一個標(biāo)準(zhǔn)的插件集,其中最著名的插件當(dāng)屬Java開發(fā)工具(Java Development Tools,JDT)[7],其界面的主界面如圖2-1所示。最初主要用來Java語言開發(fā),但是目前亦有人通過外掛程式使其作為其他計算機(jī)語言比如C++和Python的開發(fā)工具。Eclipse本身
33、只是一個框架平臺,但是眾多外掛程式的支持使得Eclipse擁有其他功能相對固定的IDE軟體很難具有的靈活性。許多軟體開發(fā)商以Eclipse為框架開發(fā)自己的IDE。Eclipse最初由IBM公司開發(fā),2001年11月貢獻(xiàn)給開源社區(qū),現(xiàn)在它由非營利軟體供應(yīng)商聯(lián)盟Eclipse基金會(Eclipse Foundation)管理[8]。 </p><p> 圖2-1 Eclipse程序主界面</p>&l
34、t;p> 在用最新版本的Eclipse開發(fā)桌面應(yīng)用程序時,既可以直接編寫代碼來設(shè)計應(yīng)用程序界面,也可以使用Eclipse的Visual Swing Designer來進(jìn)行界面的可視化設(shè)計。Visual Swing Designer是一個Swing界面設(shè)計工具插件 ,代碼的生成和解析不需要依賴于form文件,而且生成的代碼可讀性很好,支持代碼跟界面實時的切換。它還支持表格和樹的可視化設(shè)計,程序員在設(shè)計表格和樹模型時,不需要編寫復(fù)雜
35、的代碼,直接從采用界面操作便可以生成表格和樹的數(shù)據(jù)模型代碼。在一般情況下,可以通過Visual Swing Designer來設(shè)計程序的基本界面,再通過用戶定制一些代碼往往能更快地進(jìn)行應(yīng)用程序的快速開發(fā)。</p><p> Eclipse的使用大大減少了程序員開發(fā)程序的工作量,尤其是在程序界面設(shè)計方面。同時擁有對代碼錯誤信息的實時提示功能,當(dāng)程序代碼出現(xiàn)錯誤時,Eclipse會在代碼左邊顯示出錯誤提示,點擊它能
36、夠幫助程序員自動更正錯誤。</p><p><b> 2.3數(shù)據(jù)庫技術(shù)</b></p><p> 程序設(shè)計中離不開數(shù)據(jù)庫的支持,每個程序的設(shè)計都是使用數(shù)據(jù)庫保存數(shù)據(jù)。 JDBC是Java程序連接和存取數(shù)據(jù)庫的應(yīng)用程序接口,是Java核心API的一部分。JDBC使程序員能夠利用當(dāng)前最新的數(shù)據(jù)庫特征,如同時連接多個數(shù)據(jù)庫等。JDBC支持靜態(tài)和動態(tài)的SQL語句(在運行時
37、組建查詢和更新語句)。JDBC最大的特點是無論后臺是何種數(shù)據(jù)庫,對于Java程序員而言,它的工作方式完全相同。JDBC為許多不同的數(shù)據(jù)庫連接模塊的前端提供了統(tǒng)一的接口,這樣就不用為連接不同的數(shù)據(jù)庫而煩惱了。當(dāng)需要為程序修改數(shù)據(jù)庫時,程序基本上只要修改在代碼中修改數(shù)據(jù)庫的驅(qū)動,URL,用戶名,密碼,其他的地方基本上是沒有發(fā)生變化的。</p><p> 2.3.1 SQL語言概述</p><p&
38、gt; SQL(Structure Query Language,結(jié)構(gòu)化查詢語言),是一個功能強大的數(shù)據(jù)庫語言。SQL語言的主要功能就是同各種數(shù)據(jù)庫建立聯(lián)系,進(jìn)行溝通[9]。</p><p> 20世紀(jì)80年代初,美國國家標(biāo)準(zhǔn)局(ANSI)開始著手定制SQL標(biāo)準(zhǔn),最早的ANSI標(biāo)準(zhǔn)于1986年完成,叫做SQL-86。標(biāo)準(zhǔn)的出臺使SQL作為標(biāo)準(zhǔn)關(guān)系數(shù)據(jù)庫語言的地位得到了加強。SQL標(biāo)準(zhǔn)目前已幾經(jīng)修改,更趨完善。
39、</p><p> 正是由于SQL語言的標(biāo)準(zhǔn)化,所以大多數(shù)關(guān)系型數(shù)據(jù)庫都支持SQL語言,它已經(jīng)發(fā)展成為多種平臺進(jìn)行交互操作的底層會話語言。</p><p> SQL語句主要可以劃分為以下3個類別。</p><p> ?。?)DDL(Data Definition Languages)語句:數(shù)據(jù)定義語言,這些語句定義了不同的數(shù)據(jù)段、數(shù)據(jù)庫、表列、索引等數(shù)據(jù)庫對象的
40、定義。常用的語句關(guān)鍵字主要包括create、drop等。</p><p> ?。?)DML(Date Manipulation Language)語句:數(shù)據(jù)操縱語句,用于添加、刪除、更新和查詢數(shù)據(jù)庫記錄,并檢查數(shù)據(jù)完整性。常用的語句關(guān)鍵字主要包括insert、delete、update和select等。</p><p> ?。?)DCL(Data Control Language)語句:數(shù)
41、據(jù)控制語句,用于控制不同數(shù)據(jù)段直接的許可和訪問級別的語句。這些語句定義了數(shù)據(jù)庫、表、字段、用戶的訪問權(quán)限和安全級別。</p><p> 2.3.2 JDBC模型</p><p> JDBC由 編 程 語 言 編 寫 的 類 及 接 口 組 成,同時它也為程序開發(fā)人員提供了一組用于實現(xiàn)對數(shù)據(jù)庫訪問的API,并支持SQL語言。利用JDBC可以將Java代碼連接到Oracle,SQL Ser
42、ver,MySQL等數(shù)據(jù)庫,從而實現(xiàn)對數(shù)據(jù)庫中數(shù)據(jù)的相關(guān)操作[10]。</p><p> JDBC 為數(shù)據(jù)庫應(yīng)用開發(fā)人員和數(shù)據(jù)庫前臺工具開發(fā)人員提供了一種標(biāo)準(zhǔn)的應(yīng)用程序設(shè)計接口,使開發(fā)人員可以用純 Java 語言編寫完整的數(shù)據(jù)庫應(yīng)用程序 用 JDBC 寫的程序能夠自動地將 SQL 語句傳送給相應(yīng)的數(shù)據(jù)庫管理系統(tǒng)。不但如此,使用 Java 編寫的應(yīng)用程序可以在任何支持Java的平臺上運行,不必在不同的平臺上編寫不
43、同的應(yīng)用程序[11]。</p><p> JDBC由兩層組成,上面一層是JDBC API,下面一層是JDBC驅(qū)動程序API。JDBC API負(fù)責(zé)與JDBC管理器驅(qū)動程序API進(jìn)行通信,將各個不同的SQL語句發(fā)送給它。驅(qū)動程序管理器與實際連接到數(shù)據(jù)庫的第三方驅(qū)動程序進(jìn)行通信,并且返回查詢的信息,或者執(zhí)行由查詢規(guī)定的操作[12]。它主要由以下四個部分組成。</p><p><b>
44、 (l)Java程序</b></p><p> Java程序包括應(yīng)用程序,Applet和Servlet等,這些類型的程序都可以利用JDBC方法完成對數(shù)據(jù)庫的訪問和操作。完成的主要任務(wù)有:請求與數(shù)據(jù)庫建立連接、向數(shù)據(jù)庫發(fā)送SQL請求,為結(jié)果集定義存儲應(yīng)用和數(shù)據(jù)類型、查詢結(jié)果、處理錯誤、遞交及關(guān)閉等操作。</p><p> (2)JDBC驅(qū)動程序管理器</p>
45、<p> JDBC驅(qū)動管理器能夠動態(tài)地管理和維護(hù)數(shù)據(jù)庫查詢所需要的所有廠商或第三方所提供的驅(qū)動程序?qū)ο?,實現(xiàn)Java任務(wù)與特定驅(qū)動程序的連接,從而體現(xiàn)JDBC與驅(qū)動無關(guān)這一特點。它完成的任務(wù)有為:為特定的數(shù)據(jù)庫選擇驅(qū)動程序,處理JDBC初始化調(diào)用,為每個驅(qū)動程序提供JDBC功能的入口,為JDBC調(diào)用執(zhí)行參數(shù)。</p><p><b> (3)驅(qū)動程序</b></p>
46、<p> 驅(qū)動程序一般由數(shù)據(jù)庫廠商或者第三方提供,它由JDBC方法調(diào)用,向特定的數(shù)據(jù)庫發(fā)送SQL請求,并為Java程序取得結(jié)果。驅(qū)動程序可以完成下列任務(wù):建立與數(shù)據(jù)庫的連接,向數(shù)據(jù)庫發(fā)送請求等。</p><p><b> (4)數(shù)據(jù)庫</b></p><p> 數(shù)據(jù)庫是指Java程序所需要的數(shù)據(jù)庫,如MySQL,SQL Server,Oracle。
47、在本課題中,使用了MySQL數(shù)據(jù)庫。</p><p> 2.3.3 JDBC的工作方式</p><p> JDBC功能強大非常強大,但使用簡單。無論連接何種數(shù)據(jù)庫,只要做好下列步驟即可:</p><p> (1)與數(shù)據(jù)源建立連接</p><p> 通過DriverManager類建立與數(shù)據(jù)庫的連接,這個連接將作為一個數(shù)據(jù)操作的起點。&
48、lt;/p><p> 例如,在本程序中,使用以下語句與MySQL數(shù)據(jù)庫建立了連接。</p><p> protected static String dbClassName = "org.gjt.mm.mysql.Driver";// 數(shù)據(jù)庫連接驅(qū)動類</p><p> protected static String dbUrl = "
49、;jdbc:mysql://localhost:3306/gps";// 數(shù)據(jù)庫連接URL</p><p> protected static String dbUser = "root"; // 數(shù)據(jù)庫用戶名</p><p> protected static String dbPwd = "admin"; // 數(shù)據(jù)庫密碼</
50、p><p> private static Connection conn = null; // 數(shù)據(jù)庫連接對象</p><p> Class.forName(dbClassName); // 加載驅(qū)動類</p><p> conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);// 與數(shù)據(jù)庫建立一個
51、連接</p><p> (2)向數(shù)據(jù)庫發(fā)送SQL命令</p><p> 通過Statement或者PreparedStatement類發(fā)送SQL命令。在命令發(fā)送后,調(diào)用類中的excute方法來執(zhí)行結(jié)果。例如,下列語句將會執(zhí)行sql語句指定的操作。</p><p> Statement stmt=conn. createStatement (sql);//通過S
52、QL語句創(chuàng)建Statement</p><p> stmt.execte();//執(zhí)行sql語句指定的操作</p><p> ?。?)處理數(shù)據(jù)源返回的結(jié)果</p><p> 數(shù)據(jù)庫處理了SQL命令后,將返回處理結(jié)果。對于查詢將會返回一個ResultSet結(jié)果集,在Java程序中遍歷這個結(jié)果集就可以執(zhí)行想要的操作了。例如,下列語句則會從數(shù)據(jù)庫的tb_operato
53、r表中返回具有指定用戶名和密碼的查詢結(jié)果,并存放在ResultSet中。</p><p> String sql = "select * from tb_operator where name='" + name+ "' and password='" + password + "'";//查詢字符串</p>
54、;<p> ResultSet rs = Dao.executeQuery(sql);// 執(zhí)行查詢</p><p> 2.3.4 MySQL數(shù)據(jù)庫</p><p> 近幾年來,開源數(shù)據(jù)庫逐漸流行起來。由于具有免費使用、配置簡單、穩(wěn)定性能好、性能優(yōu)良等優(yōu)點,開源數(shù)據(jù)庫在中低端應(yīng)用中占據(jù)了很大的市場人人份額,而MySQL正是開源數(shù)據(jù)庫的杰出代表。</p>&
55、lt;p> MySQL[13-14]數(shù)據(jù)庫隸屬于MySQL AB公司,總部位于瑞典。MySQL幾乎支持所有的操作系統(tǒng),并且支持很大的表,這些特性使得MySQL的發(fā)展非常迅猛,目前已經(jīng)廣泛應(yīng)用在各個行業(yè)中。</p><p> MySQL數(shù)據(jù)庫目前分為社區(qū)版(Community Server)和企業(yè)版(Enterprise),它們最重要的區(qū)別在于:社區(qū)版是自由下載而且完全免費的,但是官方不提供任何技術(shù)支持,
56、適用于大多數(shù)普通用戶;企業(yè)版是收費的,不能在線下載,相應(yīng)地,它提供了更多的功能和更完備的技術(shù)支持,更適合于對數(shù)據(jù)庫的功能和可靠性要求比較高的企業(yè)客戶。在本程序中,使用了MySQL數(shù)據(jù)庫的社區(qū)版來對程序中相關(guān)的人員信息進(jìn)行維護(hù)。</p><p> 2.4 圖形界面開發(fā)技術(shù)</p><p> Swing[15]是一個用于開發(fā)Java圖形界面應(yīng)用程序的開發(fā)工具包,它是以抽象窗口工具包(AWT
57、)[16]為基礎(chǔ),使跨平臺應(yīng)用程序可以使用任何的外觀風(fēng)格。Swing開發(fā)人員通過使用少量的代碼,就可以利用Swing包中豐富、靈活的功能和模塊化組件類來開發(fā)令人滿意的用戶界面。</p><p> Swing是Sun公司推出的第二代圖形用戶接口工具包,通過Swing可以開發(fā)出功能強大,界面優(yōu)美的客戶應(yīng)用程序。Swing中不但提供了許多功能完善的控件,而且還有良好的擴(kuò)展能力。Swing組件實現(xiàn)不包括任何與平臺相關(guān)的
58、代碼。Swing組件是純Java語言編寫,沒有本地代碼,是一種輕量級組件[17]。</p><p> 目前利用 Swing 開發(fā)的可視化桌面程序已經(jīng)非常成熟,并且很多工具已經(jīng)在業(yè)界產(chǎn)生了巨大影響。例如 IBM Lotus notes 辦公套件, Eclipse和NetBeans 開發(fā)工具。其中這 Eclipse 和 NetBeans 是用來開發(fā) Java 應(yīng)用程序的,本來也是使用 Swing 開發(fā)出來的一套工具
59、,在全世界普及。近年來,NetBeans的發(fā)展,已經(jīng)在程序員中產(chǎn)生了良好的口碑,特別是它的可視化桌面程序設(shè)計器,拖拽方式設(shè)計桌面窗口,以及各種各樣良好的輔助設(shè)計功能,讓之前可視化拖拽設(shè)計工具 Delphi 的設(shè)計人員也大大贊賞。特別是 Swing 設(shè)計的桌面程序,在不同平臺幾乎不需要做什么修改就可以直接使用,讓目前的軟件廠商找到了非常好的跨平臺編程工具[18]。</p><p> 2.4.1 Swing組件類的
60、層次</p><p> Swing中的組件的層次結(jié)構(gòu)如圖2-2所示,Swing的組件可以分為兩種類型,一種是JComponent類,另一種是Window類。其中Window組件類主要包括了一些可以獨立顯示的組件,而JComponent組件類主要包括了一些不能獨立顯示的組件。什么是可以獨立顯示的組件呢?獨立顯示的組件是指當(dāng)運行一個程序時,這個組件無須托付在其他組件上就可以顯示,即它可以直接顯示出來,例如JFram
61、e類,它可以獨立顯示,無須任何其他的組件。而不可獨立顯示的組件則必須依靠可獨立顯示的組件來顯示,例如文本框組件、按鈕組件、必須依托在JFrame等上面才能顯示出來。</p><p> 圖2-2 Swing組件類的層次結(jié)構(gòu)圖</p><p> 以上的示意圖只是從顯示效果上劃分,其實從其功能上劃分,在javax.swing包中Swing組件共有三種類型:頂層組件、中間組件、基本組件。頂層組
62、件又被稱為頂層容器,而中間組件又分為中間容器和特殊中間組件,如圖2-3所示。</p><p> 圖2-3 Swing 組件從功能上劃分</p><p> (1)頂層組件類:所謂的頂層組件類是指可以獨立顯示的組件。主要有JFrame,JApplet,JDialog,JWindow等。</p><p> (2)中間容器類:所謂的中間容器類是指那些可以充當(dāng)載體,但也
63、是不可以獨立顯示的組件。通俗地說,就是一些基本控件可以放在其中,但是它不能獨立顯示,必須依托在頂層容器上才能顯示。常用的中間容器有JPanel,JScrollPane,JSplitPane,JToolBar.</p><p> (3)特殊中間組件類:在GUI上起特殊作用的中間層,如JInternalFrame。</p><p> (4)基本組件類:基本組件是指那些只能依托在中間窗口上才
64、能被顯示的組件,如JButton,JComboBox,JMenu等。</p><p> 2.4.2 Swing事件處理機(jī)制</p><p> 圖形用戶界面程序都需要對環(huán)境中發(fā)生的各種事件(包括鼠標(biāo)的單擊、值的改變、焦點的獲取或者丟失、鍵盤輸入等 )進(jìn)行監(jiān)控并根據(jù)事件的類型進(jìn)行相應(yīng)的處理。Swing中采用了委托事件模型,也叫授權(quán)事件模型來處理系統(tǒng)發(fā)生的各類事件[19]。</p>
65、;<p> 在授權(quán)事件模型中,主要包含3個對象。</p><p> (1)事件:發(fā)生在用戶界面上的用戶交互行為所產(chǎn)生的一種效果。</p><p> (2)事件源:產(chǎn)生事件的對象。</p><p> (3)事件監(jiān)聽器:接收事件并對其進(jìn)行處理的對象。</p><p> 組件作為事件源可以觸發(fā)事件,一個事件源可以注冊一個或多
66、個事件監(jiān)聽器。當(dāng)特定事件發(fā)生時,事件被委托到特定的事件監(jiān)聽器進(jìn)行處理。具體來說,首先通過組件的Add×××Listener方法注冊事件監(jiān)聽器,一個組件可以注冊多個事件監(jiān)聽器。 監(jiān)聽器監(jiān)聽特定的事件,如果組件觸發(fā)了相應(yīng)類型的事件,此事件被傳送給已經(jīng)注冊的監(jiān)聽器,事件監(jiān)聽器負(fù)責(zé)處理事件。</p><p> 委托事件模型具有如下優(yōu)點:</p><p> (1)事
67、件對象只傳給注冊的監(jiān)聽器,不會被其他組件或上層窗口捕獲和處理。</p><p> (2)可以實現(xiàn)過濾的功能,只監(jiān)聽和處理感興趣的事件。</p><p> (3)實現(xiàn)了將事件源和事件監(jiān)聽器分開處理的功能。</p><p> 2.4.3 Swing中的布局管理</p><p> Java中的布局管理管理功能,沒有Visual Basic,
68、 Visual C++等可視化軟件所帶的表單設(shè)計器,可以在畫板上直接將組件按照程序員的意愿進(jìn)行排列。在Java中只能通過編寫代碼來規(guī)范每個控件在頂層窗口中的位置。不同的代碼代表著不同的代碼布局方式,不同的布局方式代表著不同的布局格調(diào)。</p><p> 為了將添加到容器中的Swing組件和其他容器進(jìn)行布局,Swing采用了兩種布局方式:無布局管理器布局和基于布局管理器的布局。其中無布局管理器的布局是通過指定Sw
69、ing組件在窗體上的絕對位置來實現(xiàn)的?;诓季止芾砥鞯牟季諿20]是Swing為了實現(xiàn)跨平臺的動態(tài)布局效果而提出的布局方式。在這種方式下,需要調(diào)用容器類(JFrame,JDialog或者JPanel等)的setLayout方法設(shè)置布局管理器,常用的布局管理器有FlowLayout,BorderLayout,GridLayout等多種方式。不同的布局管理器使用不同的算法和策略來決定組件在窗口內(nèi)的布局。設(shè)置好布局管理器后,窗口內(nèi)的所有組件的
70、布局就由布局管理器來負(fù)責(zé),包括組件的排列順序,組件的大小,位置,當(dāng)窗口移動或調(diào)整組件大小后該如何變化等。</p><p><b> 無布局管理器的布局</b></p><p> Swing中提供了setLocation(),setSize(),setBounds()等布局方法,但Swing中存在一個默認(rèn)的布局管理器,因此這些方法都會失效。如果需要設(shè)置組件的大小或位
71、置,則應(yīng)取消布局管理器,方法為調(diào)用容器的setLayout()方法,并將布局管理器設(shè)置為null。</p><p> 采用無布局管理對組件進(jìn)行布局時,相對于基于布局管理器的布局方式在對組件的大小和位置的控制上較為靈活,但這種布局方法會導(dǎo)致平臺相關(guān),在不同的平臺上可能產(chǎn)生不同的顯示效果。如果想要使應(yīng)用程序在不同的平臺上運行,則需要采用基于布局管理器的布局方式。</p><p> Flow
72、Layout</p><p> 容器采用FlowLayout布局其組件的放置規(guī)律是從左到右,從上到下進(jìn)行設(shè)置,如果容器足夠?qū)?,第一個組件先添加到容器中第一行的最左邊,后續(xù)的組件依次添加到上一個組件的右邊,如果當(dāng)前行已經(jīng)放置不下該組件,剛放到下一行的最左邊。當(dāng)容器的大小發(fā)生變化時,用FlowLayout管理的組件會發(fā)生變化,其變化規(guī)律是:組件的大小不變,但是相對位置會發(fā)生變化。</p><p&
73、gt; BorderLayout</p><p> BorderLayout布局管理器把容器分為五個區(qū)域:North,South,East,West,Center。每個區(qū)域只能放置一個組件。如果使用了BorderLayout布局,那么當(dāng)容器的大小發(fā)生變化時,其變化規(guī)律為:組件的相對位置不變,大小發(fā)生變化。例如容器變高了,則North、South區(qū)域不變,West、Center,East區(qū)域變高。如果窗口變寬了
74、,則West和East不變,North、Center和South區(qū)域變寬。不一定所有的區(qū)域都有組件,如果四周的區(qū)域沒有組件,則用Center去補充。</p><p> GridLayout</p><p> GridLayout 將組件按網(wǎng)格型排列,每個成員盡可能地占據(jù)網(wǎng)格的空間,每個網(wǎng)格也同樣盡可能地占據(jù)空間,從而各個成員按一定的大小比例放置。如果你改變大小, GridLayout將
75、相應(yīng)地改變每個網(wǎng)格的大小,以使各個網(wǎng)格盡可能地大,占據(jù)Container容器全部的空間。GridLayout基本布局策略是把容器的空間劃分成若干行乘以若干列的網(wǎng)格區(qū)域,組件就位于這些劃分出來的小區(qū)域中,所有的區(qū)域大小一樣。組件按從左到右,從上到下的方法加入。</p><p> 使用構(gòu)造函數(shù)GridLayout(int rows, int cols)可以創(chuàng)建具有指定行數(shù)和列數(shù)的網(wǎng)格布局。構(gòu)造函數(shù)里的行數(shù)和列數(shù)能
76、夠有一個為零,但是不能都為零。當(dāng)容器里增加控件時候,容器內(nèi)將向0的那個方向增長。例如,如果是如下語句:GridLayout layout= new GridLayout(0,1);在增加控件時,會保持一個列的情況下,不斷把行數(shù)增長。</p><p><b> 面板及容器的嵌套</b></p><p> 由于任何一種布局管理器的能力都很有限,所以在設(shè)計復(fù)雜布局時,通
77、常采用容器嵌套的方式,即把組件添加到一個中間容器中,再把中間容器作為組件添加到另外一個容器中,從而實現(xiàn)復(fù)雜的布局。為實現(xiàn)這個功能,經(jīng)常使用JPanel類,該類是JCompoent類的子類。JPanel類是一個通用的容器,既可以把它放入其他容器中,也可以把它放入其他容器和組件,因此這種窗口經(jīng)常在構(gòu)造復(fù)雜布局中作為中間容器,但它不能單獨顯示,需要放到JFrame等頂層容器中。</p><p> 使用面板容器作為中間
78、容器構(gòu)建圖形用戶界面的一般思想是:先將組件添加到面板上,然后將面板作為一個組件再添加到頂層容器中。如果要作用面板作為中間容器,首先需要創(chuàng)建面板對象,JPanel的構(gòu)造方法如下:</p><p> Public JPanel(LayoutManager layout):創(chuàng)建一個面板對象,使用指定的布局管理器對旬(layout)設(shè)置面板的布局。</p><p> Public JPanel
79、();使用默認(rèn)的布局管理器創(chuàng)建一個面板對象,面板的默認(rèn)布局管理器是FlowLayout。也可以在創(chuàng)建面板對象后重新設(shè)置它的布局,方法是使用面板對象的setLayout()方法。</p><p> 2.4.4 設(shè)置應(yīng)用程序外觀</p><p> Java程序是跨平臺的,為了使Java圖形界面應(yīng)用程序在不同系統(tǒng)下顯示的外觀完全一致,Java應(yīng)用程序可以指定界面顯示外觀(Look and F
80、eel)。圖形界面程序外觀包括Java外觀(Metal風(fēng)格外觀),Windows外觀,CDE/Motif, Mac OS外觀等。</p><p> 在程序中指定一種外觀很方便,只要調(diào)用UIManager類的setFeelAndLook()方法即可,該方法的參數(shù)是LookAndFeel類的實例或類名。例如:如果用當(dāng)前平臺的外觀則可使用:</p><p> UIManager.setLoo
81、kAndFeel(UIManager.getSystemLookAndFeelClassName());</p><p> UIManager類的getSystemLookAndFeelClassName()返回當(dāng)前系統(tǒng)使用的外觀類名。將該段代碼放入應(yīng)用程序main()方法的開頭就可以設(shè)置應(yīng)用程序的外觀。</p><p> 如果要指定跨平臺的外面,即Java外觀,可以使用下面的代碼:&
82、lt;/p><p> UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName();設(shè)置應(yīng)用程序外觀,還可以在setLookAndFeel()方法的參數(shù)中指定外觀類的名字,例如</p><p> ?。?)使用Java外觀</p><p> UIManager.setLookAndF
83、eel(“javax.swing.plaf.metal.MetalLookAndFeel”);</p><p> ?。?)使用Windows外觀</p><p> UIManager.setLookAndFeel(“com.sun.java.swing.plaf.windows.WindowsLookAndFeel”);</p><p> ?。?)使用CDE/Mo
84、tif外觀</p><p> UIManager.setLookAndFeel(“com.sun.java.swing.plaf.motif.MotifLookAndFeel”);</p><p> ?。?)使用Mac OS外觀,但只能用在Mac OS平臺</p><p> UIManager.setLookAndFeel(“javax.swing.plaf.m
85、ac.MacLookAndFeel”);</p><p> 2.5 引路蜂電子地圖開發(fā)技術(shù)</p><p> 2.5.1引路蜂地圖API概述</p><p> 目前流行的電子地圖應(yīng)用中,主要基于Google地圖、百度地圖、高德地圖等進(jìn)行開發(fā)的。如果是基于Google Earth的應(yīng)用程序,可以使用KML語言[21]來進(jìn)行開發(fā)。如果是用來進(jìn)行網(wǎng)站開發(fā),一般采用G
86、oogle Map API[21]來進(jìn)行開發(fā)。Google Map API 是一種通過 JavaScript[21] 將 Google 地圖嵌入到您的網(wǎng)頁的 API。該 API 提供了大量實用工具用以處理地圖,并通過各種服務(wù)向地圖添加內(nèi)容,從而在網(wǎng)站上創(chuàng)建功能全面的地圖應(yīng)用程序。百度地圖和高德地圖提供的API提供的都是基于瀏覽器的網(wǎng)頁地圖,采用JavaScript語言進(jìn)行開發(fā)。對于標(biāo)準(zhǔn)的Java語言它們沒有提供相應(yīng)的API。</p
87、><p> 引路蜂地圖開發(fā)包[24]提供了幾乎對所有軟件平臺(桌面和移動平臺)的支持,采用統(tǒng)一的接口使用包括Google地圖,Bing地圖在內(nèi)的多達(dá)20多種地圖類型,并在同一地圖中支持矢量地圖,離線地圖的顯示。</p><p> 圖2-4顯示了引路蜂地圖開發(fā)包所支持的開發(fā)平臺,軟件包以三個不同的開發(fā)包提供對各個平臺的支持。</p><p> 圖2-4 引路蜂地圖開
88、發(fā)包支持平臺</p><p> 2.5.2地圖開發(fā)包類的定義</p><p> 圖2-5為引路蜂地圖開發(fā)包中關(guān)鍵的幾個類的定義及其關(guān)系圖</p><p> 圖2-5開發(fā)包關(guān)鍵類及其關(guān)系圖</p><p> AbstractGraphicsFactory,DigitalMapService,MapTileAbstractReader分別
89、用于對不同平臺用戶界面,不同地圖服務(wù),不同地圖圖片的支持。引路蜂地圖開發(fā)包在對地圖圖片和地圖服務(wù)進(jìn)行了抽象,其中地圖圖片主要用于顯示地圖圖片,地圖圖片可以來源于三個方面:</p><p> (1)在線地圖:可以連接包括Google地圖,Bing地圖等二十多種地圖,并支持自定義地圖。在本程序中,僅使用了在線地圖。</p><p> (2)離線地圖:可以讀取本地地圖包</p>
90、<p> (3)矢量地圖:可以讀取MapInfo格式的矢量地圖。</p><p> 而地圖服務(wù)是指地址查詢,路徑查詢,本地查詢等。引路蜂地圖開發(fā)包支持谷歌地圖服務(wù),在中國也支持MapABC,Bing地圖。而且地圖服務(wù)也是可以擴(kuò)展的。地圖圖片和地圖服務(wù)兩個部分相對獨立,如我們可以在顯示Bing地圖的同時使用谷歌地圖的服務(wù),也可以在顯示谷歌地圖的時候使用Bing地圖服務(wù)。</p><
91、;p> 引路蜂地圖開發(fā)包是跨平臺的,因為它對不同平臺的地圖開發(fā)包進(jìn)行了抽象,在Gis.Drawing包中定義了IImage,IGraphics,IFont,AbstractGraphicsFactory抽象類和抽象接口。這樣對于不同的平臺,只要實現(xiàn)相應(yīng)的接口,就可以使用同一個開發(fā)包。</p><p> 引路蜂地圖開發(fā)包主要以Java和C#兩種語言提供,盡管Java和C#是兩種不同的語言,但開發(fā)包提供的兩
92、種語言的開發(fā)接口卻非常類似。</p><p> 下表列出了引路蜂地圖開發(fā)包所定義的類包。</p><p> 2.5.3地圖對象類的層次關(guān)系</p><p> 圖2-6 地圖對象類的層次關(guān)系圖</p><p> 圖2-6顯示了各個地圖對象類及其關(guān)系。MapLayer定義了通用的地圖操作,如設(shè)置地圖的中心點,放大,縮小,移動,以及坐標(biāo)變換
93、(從屏幕坐標(biāo)到地圖坐標(biāo)或從地圖坐標(biāo)到屏幕坐標(biāo)),它是所有地圖類的基類。MapLayerContainer是一個集合類,它定義了一組MapLayer的集合及它們的上下層次關(guān)系,并且使這些MapLayer一些移動,放大,縮小等。DigitalMap定義了地圖服務(wù),如地址查詢,路徑查詢,它包含了對不同地圖服務(wù)的支持。 RasterMap定義了對在線地圖,離線地圖的支持,內(nèi)部支持多線程獲取圖片,并提供回調(diào)函數(shù)用于了解圖片的下載進(jìn)度等。Vecto
94、rMap為RasterMap的一個子類,主要是提供類似MapInfo的適量地圖的支持。矢量地圖通過讀取地圖矢量數(shù)據(jù)并將其柵格化成圖像顯示。</p><p> 2.5.4地圖圖片讀取類層次關(guān)系</p><p> 圖2-7 地圖圖片讀取類層次關(guān)系</p><p> 不管是在線地圖,離線地圖還是矢量地圖,對于RasterMap來說都是一張張256×256的
95、圖像,在線地圖是從服務(wù)器上下載圖片,離線地圖是從本地圖片包中讀取,而矢量地圖是將矢量數(shù)據(jù)柵格化處理。如圖2-7所示,RasterMap類有一個MapTileDownloadManager實例,這個對象用于管理所用地圖圖片的下載,讀取線程。這些線程都是MapTileAbstractReader的子類,MapTileDownloader用于在線下載地圖圖片,而VectorMapRender用于柵格化矢量地圖數(shù)據(jù)。大部分商用的地圖服務(wù)器都采用
96、了類似的地圖分片方法,將地圖分為1-17級,每張圖片都是大小為256個像素的正方形圖片。圖2-8顯示了從一級到三級的地圖分級方法 。</p><p> 圖2-8 地圖分級圖</p><p> 2.5.5圖形子系統(tǒng)</p><p> 如前文所述,引路蜂地圖開發(fā)包中Gis.Drawing類定義了幾個抽象類或接口,對不同平臺的圖形系統(tǒng)進(jìn)行了抽象。通過抽象處理,引路蜂
97、地圖開發(fā)包就直接調(diào)用平臺相關(guān)的圖形類方法。</p><p> Gis.Drawing定義了地圖開發(fā)包中所需要的最小功能集,如果在開發(fā)過程中不需要矢量圖,則可以將與矢量圖形相關(guān)的方法設(shè)置為空。</p><p> 在Gis.Drawing包中抽象類AbstractGraphicsFactory,接口IGraphics,IFont,IImage。</p><p>
98、抽象類AbstractGraphicsFactory是抽象圖形類工廠,主要用于創(chuàng)建新的圖像對象。以Java為例,它定義的方法如下表2-1所示。</p><p> 表2-1AbstractGraphicsFactory類中定義的方法</p><p> 接口IGraphics類中定義了一些用于圖形繪制的方法。它定義的方法如表3-2所示。</p><p> 表2-2
99、 IGraphics接口中定義的方法</p><p> 接口IFont中定義了字體,如果在應(yīng)用中不使用矢量圖,可以不實現(xiàn)該類。它定義的方法如表2-3所示。</p><p> 表2-3 IFont接口中定義的方法</p><p> 接口IImage中,定義了獲取圖片大小等一系列的方法。它定義的方法如表2-4</p><p><b&g
100、t; 所示。</b></p><p> 表2-4 IFont中定義的方法</p><p><b> 2.5.6地圖配置</b></p><p> 地圖配置主要是通過類MapConfiguration和SearchOption來設(shè)置。這里介紹最常用的幾個配置。</p><p><b> 工作
101、線程數(shù)</b></p><p> 引路蜂地圖開發(fā)包允許用戶配置同時工作的最大線程數(shù),這些工作線程主要用于從地圖服務(wù)器上下載圖片,默認(rèn)情況下工作線程數(shù)量為4。這是通過MapConfiguration.WORKER_THREAD_NUMBER來配置的。例如,下面的程序?qū)⒐ぷ骶€程數(shù)量設(shè)置為16。</p><p> MapConfiguration.setParameter(Map
102、Configuration.WORKER_THREAD_NUMBER,16);</p><p><b> 使用緩存</b></p><p> 引路蜂地圖開發(fā)包默認(rèn)是使用緩存來提高地圖的顯示效率的,但是緩存的使用會占用一定的內(nèi)存空間,大小可以通過程序進(jìn)行配置,默認(rèn)大小為256K。如果設(shè)置的內(nèi)存比較小,最好將緩存進(jìn)行關(guān)閉。對程序來說,內(nèi)存是足夠的,因此,在程序中使用了
103、緩存。緩存的大小是通過MapConfiguration.MAP_CACHE_SIZE_IN_BYTES來配置的,開啟關(guān)閉緩存是通過MapConfiguration.IS_CACHE_ON來設(shè)置的。</p><p> 第3章 系統(tǒng)總體設(shè)計</p><p><b> 3.1系統(tǒng)功能描述</b></p><p> 本小組所要研究的對象是電子防脫
104、逃裝置,由電子腕帶(在押人員佩戴)、手持機(jī)(監(jiān)管人員佩戴)和專用管理軟件(本軟件)三部分組成。手持機(jī)(監(jiān)管人員佩戴)和電子腕帶(在押人員佩戴)分別安置有GPS[25]模塊,手持機(jī)通過無線傳感網(wǎng)絡(luò)獲取兩點GPS位置坐標(biāo),進(jìn)而進(jìn)行距離計算,從而確定電子腕帶同手持移動控制終端的距離,如距離超出警戒范圍則進(jìn)行報警等操作。專用上位機(jī)監(jiān)管軟件可同手持機(jī)進(jìn)行通訊,能夠更新在押人員的基本信息和獲得人員路徑信息。</p><p>
105、 基于上述工作機(jī)理,對研究內(nèi)容進(jìn)行分解,包含以下三個部分:</p><p><b> 1、電子腕帶設(shè)計</b></p><p> 電子腕帶主要實現(xiàn)功能有如下幾點:GPS位置信息獲取、位置信息的無線傳輸、報警功能、防撬功能以及電量檢測與充電等功能。</p><p><b> 2、手持機(jī)設(shè)計</b></p>
106、<p> 手持機(jī)主要實現(xiàn)功能有如下幾點:GPS位置信息獲取、無線組網(wǎng)獲取電子腕帶位置信息、實時時鐘、電量檢測與充電、人機(jī)界面、人員信息存儲、事件記錄、與專用管理軟件通信等功能。</p><p> 3、無線人員定位管理軟件</p><p> 本軟件是Java為開發(fā)語言,以Eclipse為開發(fā)平臺,采用MySQL作為開發(fā)數(shù)據(jù)庫,再結(jié)合引路蜂地圖開發(fā)包來完成的。它是一個集成了
107、看守所在押人員的基本信息閱覽、新增、查詢、刪除、修改以及人員路徑再現(xiàn)的綜合性系統(tǒng)??梢酝ㄟ^這個軟件查看每個在押人員的基本信息,并進(jìn)行修改等,并且可以引路蜂地圖開發(fā)包,查看在押人員的行進(jìn)路線。為了提升系統(tǒng)的安全性,所有用戶只有在登錄后才可以使用本系統(tǒng)。</p><p> 本軟件包含的主要功能有:</p><p> ??新增:出現(xiàn)“新增在押人員基本信息”窗口,手動錄入相關(guān)信息。</p
108、><p> ??刪除:刪除表格中指定行的記錄,同時MySQL中相應(yīng)的記錄也被刪除。</p><p> ??查詢:按給定的條件查詢出符合條件的在押人員基本信息,并顯示在表格中。</p><p> ??修改:出現(xiàn)“在押人員基本信息修改”窗口,修改其中的各信息。</p><p> ??帳戶管理:包括增加帳戶,修改密碼和刪除帳戶等功能。 <
109、/p><p> ??人員定位:打開txt或csv文件,在地圖上顯示某一在押人員的路徑。</p><p> ??導(dǎo)出:導(dǎo)出在押人員的基本信息,以txt文件的形式保存到其他位置。</p><p> ??關(guān)于:顯示軟件的基本信息。</p><p><b> 3.2軟件總體設(shè)計</b></p><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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于java的酒店管理系統(tǒng)畢業(yè)設(shè)計論文
- 畢業(yè)設(shè)計(論文)-基于java技術(shù)的論壇(bbs)
- 畢業(yè)設(shè)計(論文)--基于java的郵件系統(tǒng)
- 基于java網(wǎng)絡(luò)聊天系統(tǒng)畢業(yè)設(shè)計論文
- 基于java的網(wǎng)上投票系統(tǒng)(doc畢業(yè)設(shè)計論文)
- 優(yōu)秀畢業(yè)設(shè)計論文+源碼基于java的圖書館管理系統(tǒng)畢業(yè)設(shè)計(論文)
- java考試系統(tǒng)畢業(yè)設(shè)計(論文)
- 畢業(yè)設(shè)計--基于java的游戲設(shè)計
- java坦克大戰(zhàn)畢業(yè)設(shè)計論文
- 基于java的論壇bbs的實現(xiàn)(doc畢業(yè)設(shè)計論文)
- 畢業(yè)設(shè)計(論文)-基于java的異常處理技術(shù)及其應(yīng)用
- 基于java的cs模式網(wǎng)絡(luò)聊天室的畢業(yè)設(shè)計(doc畢業(yè)設(shè)計論文)
- 基于java的圖書館管理系統(tǒng)畢業(yè)設(shè)計(論文)
- 畢業(yè)設(shè)計(論文)+手機(jī)游戲開發(fā)-java畢業(yè)論文
- 基于java手機(jī)游戲畢業(yè)設(shè)計
- java畢業(yè)設(shè)計論文 網(wǎng)上購物書店設(shè)計
- java學(xué)生管理系統(tǒng)畢業(yè)設(shè)計論文
- java畢業(yè)設(shè)計論文中期報告
- 畢業(yè)設(shè)計論文 java 24點游戲設(shè)計
- 基于java的酒店管理系統(tǒng)畢業(yè)設(shè)計論文(含源文件)
評論
0/150
提交評論