基于java的土地档案管理系统设计(含源文件)
歡迎添加微信互相交流學習哦!
項目源碼:https://gitee.com/oklongmm/biye
摘 ?要
? ? 研究土地檔案管理關(guān)系即為實現(xiàn)一個土地檔案管理系統(tǒng)。土地檔案管理系統(tǒng)是將現(xiàn)有的歷史紙質(zhì)檔案資料進行數(shù)字化加工處理,建成標準化的網(wǎng)絡(luò)基礎(chǔ)資料數(shù)據(jù)庫,同時建成一套基于計算機網(wǎng)絡(luò)應用的檔案管理軟件系統(tǒng)。不僅要在技術(shù)上符合國家關(guān)于檔案信息化建設(shè)的有關(guān)要求,在標準化程度上符合國土行業(yè)檔案管理規(guī)范的專業(yè)性要求,而且還要能夠與當前現(xiàn)有其他業(yè)務信息管理系統(tǒng)進行整合,在檔案和業(yè)務數(shù)據(jù)間建立互換和抽取機制,達到信息的順利交換,便于信息的一致性獲取,減少重復勞動工作量。
本文對系統(tǒng)進行了可行性研究、需求分析、前臺界面的設(shè)計、后臺數(shù)據(jù)庫建設(shè)以及系統(tǒng)測試等相關(guān)工作。基于三層架構(gòu)的思想,前臺使用jsp技術(shù),后臺使用了Oracle 11g平臺,主要使用Hibernate的設(shè)計模式訪問數(shù)據(jù)庫,采用B/S架構(gòu),實現(xiàn)此土地檔案管理系統(tǒng)。
關(guān)鍵詞:紙質(zhì)檔案;數(shù)字化;三層架構(gòu)
?
??? ? Land records management system
Abstract
Land records management system is the existing historical archives data digital processing, built the network database standardization, also built a set based on the archival management software system using computer network. Not only to meet the relevant requirements of the state on the construction of archival information in technology, meet the professional requirements management to standardize land industry archives in the degree of standardization, but also can be integrated with the existing other business information management system, in the archives and business data to establish exchange and extraction mechanism, to smooth exchange of information, consistency is the acquisition of information, reduce duplication workload.
This paper has carried on the system feasibility study, demand analysis, interface design, database construction and system testing and other related work. Three layer architecture based on the idea, the use of JSP technology, the background using the Oracle 11g platform, design mode to access the database using Hibernate, using B/S architecture, the land records management system.
Key words:The paper archives; digital; three layer architecture.
?
?
目錄
摘 ?要?? ?i
Abstract?? ?ii
1 ?緒論?? ?1
1.1 ?可行性研究編寫目的?? ?1
1.2 ?項目背景?? ?1
1.3 ?土地管理現(xiàn)狀?? ?1
1.4 ?土地檔案管理研究方向?? ?2
1.5 ?項目目標?? ?2
1.6 ?項目設(shè)計原則?? ?3
1.6.1 ?實用性原則?? ?3
1.6.2 ?經(jīng)濟性原則?? ?3
1.6.3 ?合法性原則?? ?3
2 ?相關(guān)技術(shù)介紹?? ?4
2.1 ?三層架構(gòu)的選擇?? ?4
2.2 ?編程語言的選擇?? ?5
2.3 ?主要技術(shù)、框架的選擇?? ?6
2.4 ?數(shù)據(jù)庫的選擇?? ?7
2.5 ?技術(shù)選擇方向?? ?7
3 ?需求分析?? ?9
3.1 ?編寫目的?? ?9
3.2 ?系統(tǒng)需求分析簡述?? ?9
3.3 ?系統(tǒng)需求分析詳細描述?? ?9
3.3.1 ?用戶管理模塊?? ?9
3.3.2 ?文件查找模塊?? ?9
3.3.3 ?文件添加模塊?? ?9
3.3.4 ?文件修改模塊?? ?10
3.3.5 ?文件刪除模塊?? ?10
4 ?總體設(shè)計?? ?11
4.1 ?系統(tǒng)功能模塊結(jié)構(gòu)設(shè)計?? ?11
4.2 ?數(shù)據(jù)庫設(shè)計?? ?11
5 ?詳細設(shè)計?? ?14
5.1 ?登陸模塊設(shè)計?? ?14
5.2 ?注冊模塊設(shè)計?? ?14
5.3 ?文件查詢模塊設(shè)計?? ?14
5.4 ?文件添加模塊設(shè)計?? ?15
5.5 ?文件修改模塊設(shè)計?? ?15
5.6 ?文件刪除模塊設(shè)計?? ?15
6 ?系統(tǒng)實現(xiàn)?? ?16
6.1 ?用戶相關(guān)?? ?16
6.1.1 ?登陸界面?? ?16
6.1.2 ?注冊頁面?? ?17
6.2 ?檔案相關(guān)?? ?19
6.2.1 ?檔案列舉?? ?19
6.2.2 ?檔案查詢?? ?22
6.2.3 ?檔案修改?? ?24
6.2.4 ?檔案刪除?? ?26
6.2.5 ?檔案添加?? ?27
6.2.6 ?報表功能?? ?30
6.3 ?Service層的實現(xiàn)?? ?30
6.3.1 ?Service層實現(xiàn)介紹?? ?30
6.3.2 ?Service層實現(xiàn)的相關(guān)代碼?? ?31
6.4 ?持久層的實現(xiàn)?? ?32
6.4.1 ?持久層功能實現(xiàn)的介紹?? ?32
6.4.2 ?持久層實現(xiàn)的代碼?? ?32
7 ?測試?? ?34
7.1 ?測試目的?? ?34
7.2 ?測試原則?? ?34
7.3 ?測試內(nèi)容?? ?34
7.4 ?測試過程?? ?35
7.4.1 ?登錄模塊?? ?35
7.4.2 ?查詢模塊?? ?35
7.5 ?測試結(jié)果?? ?36
7.5.1 ?功能性?? ?36
7.5.2 ?易用性?? ?36
結(jié) ? ?論?? ?37
參考文獻?? ?39
致 ? ?謝?? ?40
外文原文?? ?41
外文翻譯?? ?47
?
1 ?緒論
1.1 ?可行性研究編寫目的
可行性研究的目的是為了對問題進行研究,以最小的代價在最短的時間內(nèi)確定問題是否可解。
經(jīng)過對此項目進行詳細調(diào)查研究,初擬系統(tǒng)實驗報告,對軟件開發(fā)中將要面臨的問題及解決方案進行初涉設(shè)計及合理安排。明確開發(fā)風險極其所帶來的經(jīng)濟效益以及為工作帶來的便利性。本報告合身后,交軟件經(jīng)理審查。
1.2 ?項目背景
? ? 隨著國土大面積調(diào)查工作的全面展開和城鎮(zhèn)地籍管理工作得以日趨細化,各種野外調(diào)查數(shù)據(jù),不同比例尺圖件資料急劇增加。特別是城市建設(shè)的空前發(fā)展以及土地有償使用法規(guī)的實施,使得地籍變更日益頻繁、地籍信息量也越來越大,對城鎮(zhèn)地籍管理提出了更高的要求。面對如此數(shù)量巨大、來源多樣、變更頻繁的信息,傳統(tǒng)的管理方法已經(jīng)愈來愈不能滿足現(xiàn)代化土地管理的需要。此外,國民經(jīng)濟的迅猛發(fā)展,迫切要求各級國土部門為國家提供準確的數(shù)量、質(zhì)量和土地利用現(xiàn)狀等信息。因此,應用現(xiàn)代先進的科學技術(shù)和手段,建立科學的土地管理體系,為合理利用土地資源,進行土地規(guī)劃、整治、開發(fā)利用、稅收等提供有關(guān)基礎(chǔ)資料和科學依據(jù),土地管理信息系統(tǒng)的建立勢在必行。
? ? 現(xiàn)有土地檔案大部分還是傳統(tǒng)的紙質(zhì)檔案,電子檔案極少,隨著 城市大規(guī)模舊城區(qū)改造以及城中村改造的面積擴大,一些不適應城市發(fā)展的建筑物已經(jīng)消失 ,土地檔案部門作為城市建設(shè)的見證人,社會發(fā)展的記錄者,有責任、有義務將城市建設(shè)發(fā) 展的歷史真實的記錄下來。[2]
? ? 從本質(zhì)上來講,建立土地管理信息就是用現(xiàn)代化的技術(shù)來獲取、分析、處理、管理和利用土地信息,就是要依靠計算機技術(shù)和現(xiàn)代化科學理論及數(shù)學模型的應用,如地理信息系統(tǒng)、遙感學、計算機科學(包括互聯(lián)網(wǎng)技術(shù)……)等對土地信息進行管理。其中,土地管理的許多業(yè)務工作,如,動態(tài)監(jiān)測、建設(shè)用地管理、土地監(jiān)察、地價評估都必須建立在地籍、土地詳查系統(tǒng)的基礎(chǔ)之上,或者說與其有著千絲萬縷的聯(lián)系。因此,土地信息系統(tǒng)的核心問題是建立地籍管理信息系統(tǒng)和土地詳查系統(tǒng),這是土地管理各項業(yè)務工作的基礎(chǔ),必須先行。
1.3 ?土地管理現(xiàn)狀
? ? 當前社會逐步向信息化社會演變,及時、全面、系統(tǒng)、準確地獲取信息是做好各項工作的前提。檔案利用者對檔案信息的要求也是如此。檔案管理工作者如果繼續(xù)沿用低效率的傳統(tǒng)手工管理模式,必將在社會發(fā)展的大趨勢面前沒有立足的空間。隨著計算機的應用,電子檔案大量地出現(xiàn),但與之相適應的管理缺乏經(jīng)驗。電子檔案本身具有信息與載體的可分離性、信息傳遞的網(wǎng)絡(luò)化、信息存儲的高容量及信息的易修改等特點。國土資源檔案的管理工作者更應跟上形勢,努力適應對電子檔案的管理。
? ? 隨著檔案法規(guī)的逐步完善,依法治檔的社會環(huán)境不斷好轉(zhuǎn),檔案管理工作正面臨難得的發(fā)展機遇。土地檔案對依法管地、合理開發(fā)用地、解決土地糾紛、農(nóng)村土地承包、制定土地利用總體規(guī)劃及繳納土地租金、征繳國有土地使用稅等很多方面都起到了很重要的作用。隨著新的土地管理法的正式實施以來,土地資源管理制度和方式均發(fā)生了重大的變化,耕地保護、土地用途管制、國土資源執(zhí)法、礦產(chǎn)管理等管理職能都得到了增強,基本農(nóng)田保護、土地開發(fā)整理、用地報批、征地實施等各項具體工作都有了新的政策、法規(guī)、程序,由此形成的土地資源檔案數(shù)量不斷增多。如何開發(fā)和利用這部分內(nèi)容豐富的土地資源檔案成為檔案管理工作的一大難題。
? ? 土地資源檔案管理工作的發(fā)展,對土地資源檔案管理工作者的素質(zhì)提出了更高的要求。新技術(shù)的應用使土地資源檔案管理工作者有了施展才能的廣闊空間,但同時也對土地資源檔案管理工作者的素質(zhì)提出了更高的要求。新時期的土地資源檔案管理工作者,除了要求具有檔案管理本專業(yè)的知識外,還要求具有計算機、外語、管理學等基礎(chǔ)知識,尤其是要求具有土地資源管理基礎(chǔ)業(yè)務知識。
1.4 ?土地檔案管理研究方向
? ? 一、加強基礎(chǔ)業(yè)務建設(shè)。按照各地土地檔案管理目標認定的各項業(yè)務建設(shè)要求,扎扎實實地抓好基礎(chǔ)業(yè)務建設(shè)。在國土資源管理工作中,檔案的形成要規(guī)范化、檔案的整理要系統(tǒng)化、檔案的保護要科學化、檔案的管理要現(xiàn)代化。另一方面要積極探索對電子檔案管理的新辦法,把電子檔案的形成、積累、歸檔、保管和提供利用等各環(huán)節(jié)納入到檔案管理的范圍,并納入檔案管理部門的監(jiān)督管理之中。
二、加強信息系統(tǒng)建設(shè)。隨著辦公自動化的普及,要加快檔案信息電子化建設(shè)進程,充分利用計算機存儲、網(wǎng)絡(luò)、計算的功能,加快檔案信息系統(tǒng)建設(shè)。建議建立電子影像檔案數(shù)據(jù)庫,實現(xiàn)對電子影像檔案的管理和維護,同時使其具備和地籍管理系統(tǒng)之間的數(shù)據(jù)借口,通過土地登記申請材料的掃描,在完成土地登記后,可以直接生成地籍電子影像檔案,同時形成紙質(zhì)和電子兩套檔案數(shù)據(jù)。
三、積極采用現(xiàn)代化科學技術(shù),全面提高檔案管理的現(xiàn)代化水平。在抓好檔案基礎(chǔ)工作的前提下,要著重提高檔案管理的科技含量。國土資源檔案管理工作者要主動開發(fā)或引進先進的管理軟件,努力學習國內(nèi)外先進的技術(shù)和經(jīng)驗,及時配置不斷更新檔案現(xiàn)代化管理所必須的計算機、掃描儀、光盤刻錄機等現(xiàn)代化辦公設(shè)備,充分利用現(xiàn)代化技術(shù),探索對國土資源檔案進行掃描、光盤存儲管理等新的辦法。在建設(shè)新的辦公樓時要科學設(shè)計、規(guī)劃國土資源檔案管理庫房,有條件的要采用庫房安全的自動化監(jiān)控、庫房溫濕度的自動控制等先進技術(shù)。
? ? 四、加強檔案法制的學習和宣傳,推進依法治檔工作。要利用多種形式,加大對《檔案法》等檔案法規(guī)的學習和宣傳。對領(lǐng)導和干部職工的宣傳要有針對性、注重實效;在檔案管理工作中要強調(diào)依法治檔,把依法治檔工作真正落實到檔案工作的各個環(huán)節(jié)。
1.5 ?項目目標
? ? 建立地、市、縣級的土地信息系統(tǒng),開發(fā)以土地登記為核心的地籍信息系統(tǒng),以土地利用現(xiàn)狀調(diào)查為核心的土地資源信息系統(tǒng),為以服務社會為目標的地、市、縣級數(shù)字國土信息系統(tǒng)奠定基礎(chǔ),從而實現(xiàn)土地管理工作的計算機化,實現(xiàn)土地管理信息的共享;提高土地管理的質(zhì)量、效率和水平,更好地為上級領(lǐng)導和有關(guān)部門提供準確快速的土地信息查詢服務、為土地使用者提供快捷的、全面的服務,為各級政府部門和有關(guān)機構(gòu)的土地管理和決策提供技術(shù)支持。
1.6 ?項目設(shè)計原則
1.6.1 ?實用性原則
? ? 當前土地檔案管理還是主要停留在流傳千年的傳統(tǒng)紙質(zhì)檔案管理,這樣的落后的管理方式對檔案的存儲、查閱等相關(guān)工作帶來了極大的不便。尤其是是這樣信息化全面發(fā)展的時期,舊的落后的系統(tǒng)已經(jīng)逐步顯現(xiàn)其缺陷。在一線二線城市,信息化相關(guān)工作還好,但是再往下級就回歸紙質(zhì)時代。這樣就呈現(xiàn)出了工作效率的分化。全面的信息化會讓土地檔案管理方面的工作帶來極大便利。
1.6.2 ?經(jīng)濟性原則
? ? 建立合適的土地檔案管理系統(tǒng),提供了全面的功能,,數(shù)據(jù)處理方式靈活且滿足需求,減少了人力物力的過度投入。同時基于web開發(fā)的系統(tǒng),能夠自主對系統(tǒng)進行修改,也節(jié)省了運營成本。
1.6.3 ?合法性原則
由于在中國對于版權(quán)的保護相關(guān)法律并不完善,所以某些軟件使用盜版軟件并不會帶來太大影響,且能減少支出。但是政府機關(guān)的軟件都是受到國家監(jiān)管的,所以軟件正版化這部分的投入不可少,否則后期版權(quán)糾紛帶來的影響可能會很大。此外,所有資料都由提出放保管,合同制定確定違約責任。
?
2 ?相關(guān)技術(shù)介紹
2.1 ?三層架構(gòu)的選擇
?MVC開始是存在于桌面程序中的,M是指業(yè)務模型,V是指用戶界面,C則是控制器,使用MVC的目的是將M和V的實現(xiàn)代碼分離,從而使同一個程序可以使用不同的表現(xiàn)形式。比如一批統(tǒng)計數(shù)據(jù)可以分別用柱狀圖、餅圖來表示。C存在的目的則是確保M和V的同步,一旦M改變,V應該同步更新。
?模型-視圖-控制器(MVC)是Xerox PARC在二十世紀八十年代為編程語言Smalltalk-80發(fā)明的一種軟件設(shè)計模式,已被廣泛使用。后來被推薦為Oracle旗下Sun公司Java EE平臺的設(shè)計模式,并且受到越來越多的使用ColdFusion和PHP的開發(fā)者的歡迎。模型-視圖-控制器模式是一個有用的工具箱,它有很多好處,但也有一些缺點。
?MVC 模式同時提供了對 HTML、CSS 和 JavaScript 的完全控制。
?Model(模型)是應用程序中用于處理應用程序數(shù)據(jù)邏輯的部分。通常模型對象負責在數(shù)據(jù)庫中存取數(shù)據(jù)。
?View(視圖)是應用程序中處理數(shù)據(jù)顯示的部分。通常視圖是依據(jù)模型數(shù)據(jù)創(chuàng)建的。
?Controller(控制器)是應用程序中處理用戶交互的部分。
通常控制器負責從視圖讀取數(shù)據(jù),控制用戶輸入,并向模型發(fā)送數(shù)據(jù)。
? ? MVC 分層有助于管理復雜的應用程序,因為您可以在一個時間內(nèi)專門關(guān)注一個方面。例如,您可以在不依賴業(yè)務邏輯的情況下專注于視圖設(shè)計。同時也讓應用程序的測試更加容易。
? ? MVC 分層同時也簡化了分組開發(fā)。不同的開發(fā)人員可同時開發(fā)視圖、控制器邏輯和業(yè)務邏輯。MVC的層次結(jié)構(gòu)如圖2-1所示。
?
圖2-1 MVC層次圖
2.2 ?編程語言的選擇
? ? 與傳統(tǒng)程序不同,Sun 公司在推出 Java 之際就將其作為一種開放的技術(shù)。全球數(shù)以萬計的 Java 開發(fā)公司被要求所設(shè)計的 Java軟件必須相互兼容。“Java 語言靠群體的力量而非公司的力量”是Sun公司的口號之一,并獲得了廣大軟件開發(fā)商的認同。這與微軟公司所倡導的注重精英和封閉式的模式完全不同。
? ? Sun 公司對 Java 編程語言的解釋是:Java 編程語言是個簡單、面向?qū)ο蟆⒎植际健⒔忉屝浴⒔选踩c系統(tǒng)無關(guān)、可移植、高性能、多線程和動態(tài)的語言。
? ? Java 平臺是基于 Java 語言的平臺。這樣的平臺非常流行。因此微軟公司推出了與之競爭的.NET平臺以及模仿Java的C#語言。
? ? Java是功能完善的通用程序設(shè)計語言,可以用來開發(fā)可靠的、要求嚴格的應用程序。
? ? 選擇JAVA主要是因為其8大優(yōu)勢:
? ? 1. Java是目前使用最為廣泛的網(wǎng)絡(luò)編程語言之一。它具有簡單,面向?qū)ο?#xff0c;穩(wěn)定,與平臺無關(guān),解釋型,多線程,動態(tài)等特點。
? ? 2.簡單 Java 語言簡單是指這門語言既易學有好用。不要將簡單誤解為這門語言很干癟。你可能很贊同這樣的觀點 英語要比阿了伯語言容易學。但這并不意味著英語就不能表達豐富的內(nèi)容和深刻的思想,許多文學若貝爾獎的作品都是英文寫的。如果你學習過 C++語言,你會感覺 Java很眼熟,因為 Java中許多基本語句的語法和 C++一樣,像常用的循環(huán)語句,控制語句等和 C++幾乎一樣,但不要誤解為 Java 是 C++的增強版,Java 和 C++是兩種完全不同的語言,他們各有各的優(yōu)勢,將會長期并存下去,Java 語言和 C++語言已成為軟件開發(fā)者應當掌握的語言。如果從語言的簡單性方面看,Java要比 C++簡單,C++中許多容易混淆的概念,或者被Java棄之不用了,或者以一種更清楚更容易理解的方式實現(xiàn),例如,Java不再有指針的概念。
? ? 3.面向?qū)ο?基于對象的編程更符合人的思維模式,使人們更容易編寫程序。在實際生活中,我們每時每刻都與對象在打交道。我們用的鋼筆,騎的自行車,乘的公共汽車等。而我們經(jīng)常見到的卡車,公共汽車,轎車等都會涉及以下幾個重要的物理量 可乘載的人數(shù),運行速度,發(fā)動機的功率,耗油量,自重,輪子數(shù)目等。另外,還有幾個重要的功能 加速功能,減速功能,剎車,轉(zhuǎn)彎功能等。我們也可以把這些功能稱作是他們具有的方法,而物理量是它們的狀態(tài)描述。僅僅用物理量或功能不能很好的描述它們。在現(xiàn)實生活中,我們用這些共有的屬性和功能給出一個概念 機動車類。一個具體的轎車就是機動車類的一個實例 對象 .Java 語言與其它面向?qū)ο笳Z言一樣,引入了類的概念,類是用來創(chuàng)建對象的模板,它包含被創(chuàng)建的對象的狀態(tài)描述和方法的定義。
4.與平臺無關(guān) 與平臺無關(guān)是 Java 語言最大的優(yōu)勢。其它語言編寫的程序面臨的一個主要問題是 操作系統(tǒng)的變化,處理器升級以及核心系統(tǒng)資源的變化,都可能導致程序出現(xiàn)錯誤或無法運行。Java的虛擬機成功地解決了這個問題,Java編寫的程序可以在任何安裝了 Java虛擬機 JVM 的計算機上正確的運行,Sun公司實現(xiàn)了自己的目標 “一次寫成,處處運行”。
5.解釋型 我們知道C,C++等語言,都是只能對特定的CPU芯片進行編譯,生成機器代碼,該代碼的運行就和特定的CUP有關(guān)。例如,在C語言中,我們都碰到過類似下面的問題 int 型變量的值是10 ,那么下面代碼的輸出結(jié)果是什么呢 printf(“%d,%d”,x,x=x+1) 如果上述語句的計算順序是從左到右,結(jié)果是 10,11 但是,有些機器會從右到左計算,那么結(jié)果就是11,11.Java不像C++,它不針對特定的CPU芯片進行編譯,而是把程序編譯為稱做字節(jié)碼的一個“中間代碼”。字節(jié)碼是很接近機器碼的文件,可以在提供了 Java 虛擬機 JVM 的任何系統(tǒng)上被解釋執(zhí)行。Java 被設(shè)計成為解釋執(zhí)行的程序,即翻譯一句,執(zhí)行一句,不產(chǎn)生整個的機器代碼程序。翻譯過程如果不出現(xiàn)錯誤,就一直進行到完畢,否則將在錯誤處停止執(zhí)行。同一個程序,如果是解釋執(zhí)行的,那么它的運行速度通常比編譯為可執(zhí)行的機器代碼的運行速度慢一些。但是,對Java來說,二者的差別不太大,Java的字節(jié)碼經(jīng)過仔細設(shè)計,很容易便能使用JIT 即時編譯方式 編譯技術(shù)將字節(jié)碼直接轉(zhuǎn)化成高性能的本地機器碼,Sun 公司在 Java 2發(fā)行版中提供了這樣一個字節(jié)碼編譯器——JIT(Just In Time),它是Java虛擬機的一部分。Java運行系統(tǒng)在提供JIT的同時仍具有平臺獨立性,因而“高效且跨平臺”對Java來說不再矛盾。如果把 Java 的程序比做“漢語”的話,字節(jié)碼就相當于“世界語”,世界語不和具體的“國家”關(guān),只要這個“國家”提供了“翻譯”,就可以再快速地把世界語翻譯成本地語言。
6.多線程 Java 的特點之一就是內(nèi)置對多線程的支持。多線程允許同時完成多個任務。實際上多線程使人產(chǎn)生多個任務在同時執(zhí)行的錯覺,因為,目前的計算機的處理器在同一時刻只能執(zhí)行一個線程,但處理器可以在不同的線程之間快速地切換,由于處理器速度非常快,遠遠超過了人接收信息的速度,所以給人的感覺好象多個任務在同時執(zhí)行。C++沒有內(nèi)置的多線程機制,因此必須調(diào)用操作系統(tǒng)的多線程功能來進行多線程程序的設(shè)計。
? ? 7.安全 當你準備從網(wǎng)絡(luò)上下載一個程序時,你最大的擔心是程序中含有惡意的代碼,比如試圖讀取或刪除本地機上的一些重要文件,甚至該程序是一個病毒程序等。當你使用支持Java的瀏覽器時,你可以放心地運行Java的小應用程序 Java Applet ,不必擔心病毒的感染和惡意的企圖,Java小應用程序?qū)⑾拗圃?Java運行環(huán)境中,不允許它訪問計算機的其它部分。
? ? 8.動態(tài) Java 程序的基本組成單元就是類,有些類是自己編寫的,有一些是從類庫中引入的,而類又是運行時動態(tài)裝載的,這就使得 Java 可以在分布環(huán)境中動態(tài)地維護程序及類庫,而不像 C++那樣,每當其類庫升級之后,相應的程序都必須重新修改,編譯。
2.3 ?主要技術(shù)、框架的選擇
首先,Hibernate是數(shù)據(jù)持久層的一個輕量級框架。主要有以下優(yōu)點:
? ? 1.使用簡介的hql語句(Hibernate query language)。可以不使用傳統(tǒng)的insert,update等sql語句。比如insert一個對象,原來的做法是:insert into 表名稱 alue(值1,值2,值3,……),而現(xiàn)在的做法是:save(對象)。
? ? 2.使用or映射。對象到關(guān)系數(shù)據(jù)庫之間的映射。是從對象的角度操作數(shù)據(jù)庫,再次體現(xiàn)了面向?qū)ο笏枷搿T瓉淼膶嶓w抽取方法:首先有了表,然后表映射實體對象。而現(xiàn)在Hibernate做法是:直接由對象映射到表。
? ? 3.沒有侵入性,移植性比較好。什么是沒有侵入性?就是Hibernate采用了pojo對象。所謂的pojo對象就是沒有繼承Hibernate類或?qū)崿F(xiàn)Hibernate接口。這樣的話,此類就是一個普通的java類,所以移植性比較好。?
? ? 4.支持透明持久化。透明是針對上層而言的。三層架構(gòu)的理念是上層對下層的依賴,只是依賴接口不依賴具體實現(xiàn)。而Hibernate中的透明是指對業(yè)務邏輯層提供了一個接口session,而其他的都封裝隱藏。持久化是指把內(nèi)存中的數(shù)據(jù)存放到磁盤上的文件中。
2.4 ?數(shù)據(jù)庫的選擇
?ORACLE數(shù)據(jù)庫系統(tǒng)是美國ORACLE公司(甲骨文)提供的以分布式數(shù)據(jù)庫為核心的一組軟件產(chǎn)品,是目前最流行的客戶/服務器(CLIENT/SERVER)或B/S體系結(jié)構(gòu)的數(shù)據(jù)庫之一。比如SilverStream就是基于數(shù)據(jù)庫的一種中間件。ORACLE數(shù)據(jù)庫是目前世界上使用最為廣泛的數(shù)據(jù)庫管理系統(tǒng),作為一個通用的數(shù)據(jù)庫系統(tǒng),它具有完整的數(shù)據(jù)管理功能;作為一個關(guān)系數(shù)據(jù)庫,它是一個完備關(guān)系的產(chǎn)品;作為分布式數(shù)據(jù)庫它實現(xiàn)了分布式處理功能。但它的所有知識,只要在一種機型上學習了ORACLE知識,便能在各種類型的機器上使用它。
?Oracle數(shù)據(jù)庫最新版本為Oracle Database 12c。Oracle數(shù)據(jù)庫12c 引入了一個新的多承租方架構(gòu),使用該架構(gòu)可輕松部署和管理數(shù)據(jù)庫云。此外,一些創(chuàng)新特性可最大限度地提高資源使用率和靈活性,如Oracle Multitenant可快速整合多個數(shù)據(jù)庫,而Automatic Data Optimization和Heat Map能以更高的密度壓縮數(shù)據(jù)和對數(shù)據(jù)分層。這些獨一無二的技術(shù)進步再加上在可用性、安全性和大數(shù)據(jù)支持方面的主要增強,使得Oracle數(shù)據(jù)庫12c 成為私有云和公有云部署的理想平臺。
選擇ORACLE,是因為其具備一下優(yōu)勢:
1、處理速度快,非常快。
?? ?2、安全級別高。支持快閃以及完美的恢復,即使硬件壞了 也可以恢復到故障發(fā)前的1s。
?? ?3、幾臺數(shù)據(jù)庫做負載數(shù)據(jù)庫,可以做到30s以內(nèi)故障轉(zhuǎn)移。
?? ?4、網(wǎng)格控制,以及數(shù)據(jù)倉庫方面也非常強大。
2.5 ?技術(shù)選擇方向
? ? 在日常的實際數(shù)據(jù)庫操作中,因為數(shù)據(jù)庫架設(shè)在服務器上,而服務器的處理能力遠優(yōu)于客戶端的處理能力,所以更多地把邏輯放在服務端將成為趨勢,而存儲過程就是其中一個常用的項目。
存儲過程(Stored Procedure)是在大型數(shù)據(jù)庫系統(tǒng)中,一組為了完成特定功能的SQL 語句集,經(jīng)編譯后存儲在數(shù)據(jù)庫中,用戶通過指定存儲過程的名字并給出參數(shù)(如果該存儲過程帶有參數(shù))來執(zhí)行它。存儲過程是數(shù)據(jù)庫中的一個重要對象,任何一個設(shè)計良好的數(shù)據(jù)庫應用程序都應該用到存儲過程。
在大型數(shù)據(jù)庫系統(tǒng)中,存儲過程和觸發(fā)器具有很重要的作用。無論是存儲過程還是觸發(fā)器,都是SQL 語句和流程控制語句的集合。就本質(zhì)而言,觸發(fā)器也是一種存儲過程。存儲過程在運算時生成執(zhí)行方式,所以,以后對其再運行時其執(zhí)行速度很快。SQL Server 2005 不僅提供了用戶自定義存儲過程的功能,而且也提供了許多可作為工具使用的系統(tǒng)存儲過程。
同樣,觸發(fā)器也是很重要的對象。
? ? 觸發(fā)器是一種特殊類型的存儲過程,它不同于我們前面介紹過的存儲過程。觸發(fā)器主要是通過事件進行觸發(fā)而被執(zhí)行的,而存儲過程可以通過存儲過程名字而被直接調(diào)用。當對某一表進行諸如Update、 Insert、 Delete 這些操作時,SQL Server 就會自動執(zhí)行觸發(fā)器所定義的SQL 語句,從而確保對數(shù)據(jù)的處理必須符合由這些SQL 語句所定義的規(guī)則。
觸發(fā)器的主要作用就是其能夠?qū)崿F(xiàn)由主鍵和外鍵所不能保證的復雜的參照完整性和數(shù)據(jù)的一致性。除此之外,觸發(fā)器還有其它許多不同的功能:
(1) 強化約束(Enforce restriction)
觸發(fā)器能夠?qū)崿F(xiàn)比CHECK 語句更為復雜的約束。
? ? (2) 跟蹤變化Auditing changes
? ? 觸發(fā)器可以偵測數(shù)據(jù)庫內(nèi)的操作,從而不允許數(shù)據(jù)庫中未經(jīng)許可的指定更新和變化。
? ? (3) 級聯(lián)運行(Cascaded operation)。
? ? 觸發(fā)器可以偵測數(shù)據(jù)庫內(nèi)的操作,并自動地級聯(lián)影響整個數(shù)據(jù)庫的各項內(nèi)容。例如,某個表上的觸發(fā)器中包含有對另外一個表的數(shù)據(jù)操作(如刪除,更新,插入)而該操作又導致該表上觸發(fā)器被觸發(fā)。
? ? (4) 存儲過程的調(diào)用(Stored procedure invocation)。
? ? 為了響應數(shù)據(jù)庫更新,觸發(fā)器可以調(diào)用一個或多個存儲過程,甚至可以通過外部過程的調(diào)用而在DBMS(數(shù)據(jù)庫管理系統(tǒng))本身之外進行操作。
由此可見,觸發(fā)器可以解決高級形式的業(yè)務規(guī)則或復雜行為限制以及實現(xiàn)定制記錄等一些方面的問題。例如,觸發(fā)器能夠找出某一表在數(shù)據(jù)修改前后狀態(tài)發(fā)生的差異,并根據(jù)這種差異執(zhí)行一定的處理。此外一個表的同一類型(Insert、 Update、 Delete)的多個觸發(fā)器能夠?qū)ν环N數(shù)據(jù)操作采取多種不同的處理。
? ? 總體而言,觸發(fā)器性能通常比較低。當運行觸發(fā)器時,系統(tǒng)處理的大部分時間花費在參照其它表的這一處理上,因為這些表既不在內(nèi)存中也不在數(shù)據(jù)庫設(shè)備上,而刪除表和插入表總是位于內(nèi)存中。可見觸發(fā)器所參照的其它表的位置決定了操作要花費的時間長短。
?
3 ?需求分析
3.1 ?編寫目的
本土地項目管理系統(tǒng)在可行性研究的基礎(chǔ)上,是為了進一步明確土地項目管理系統(tǒng)的軟件需求,以便安排項目規(guī)劃和進度,組織軟件開發(fā)和測試,撰寫本文檔。
本文檔供項目經(jīng)理、設(shè)計人員、開發(fā)人員參考。
3.2 ?系統(tǒng)需求分析簡述
? ? 土地檔案管理系統(tǒng)是一個復雜龐大的系統(tǒng),整體需求是要通過信息化的手段完成傳統(tǒng)檔案管理工作向新技術(shù)手段的遷移。考慮到土地檔案管理工作的保密性,對此系統(tǒng)應當按照用戶級別進行授權(quán),以及對系統(tǒng)的安全性進行一系列的設(shè)計。在具體功能上,要實現(xiàn)的有用戶的管理、檔案的管理、系統(tǒng)的維護等功能。
? ? 但是,這樣的一個龐大系統(tǒng),并不是以一人之力可為之的。所以現(xiàn)在從龐大的需求中抽離出出最基礎(chǔ)最核心的對檔案的增刪改查,以及其它部分以實現(xiàn)。
3.3 ?系統(tǒng)需求分析詳細描述
3.3.1 ?用戶管理模塊
? ? 若要使用該系統(tǒng),需注冊用戶登錄系統(tǒng)才可以使用。
? ? 用戶管理模塊主要包括登錄和注冊兩個部分,只是簡單的實現(xiàn)其功能,對權(quán)限分配等暫無需求。
? ? 注冊模塊實現(xiàn)用戶注冊功能。
? ? 登陸模塊實現(xiàn)用戶登錄功能。
3.3.2 ?文件查找模塊
? ? 文件查找模塊,是要根據(jù)文件號進行文件的查找。
3.3.3 ?文件添加模塊
? ? 在需要向系統(tǒng)中添加文件的時候,通過該模塊手工錄入文件各項詳細信息,完成對文件的錄入。
3.3.4 ?文件修改模塊
根據(jù)文件號查找到文件,在能看到該文件信息的情況下,進行文件信息的修改操作,修改完成后進行儲存。
3.3.5 ?文件刪除模塊
通過文件號查找到文件,然后進行文件的刪除操作。
?
4 ?總體設(shè)計
本系統(tǒng)是采用B/S體系的三層結(jié)構(gòu),使用java編程語言,應用Hibernate開發(fā)模式。三層結(jié)構(gòu)即Model層、View層和Service層的分離,層次分明的設(shè)計結(jié)構(gòu)讓整個系統(tǒng)顯得層次分明,在實現(xiàn)和后期維護等方面將帶來極大的方便。
總體來說,對于土地檔案管理系統(tǒng)主要是實現(xiàn)用戶管理方面即用戶的登錄和注冊功能,以及對于文件檔案的管理工作,即對文件檔案的增刪改查工作。在實現(xiàn)這些基本功能的基礎(chǔ)上,在實現(xiàn)一些其他的功能,諸如頁面的導航顯示。
4.1 ?系統(tǒng)功能模塊結(jié)構(gòu)設(shè)計
? ? 本系統(tǒng)主要分為兩大功能模塊,即用戶管理模塊和檔案管理模塊,這兩個模塊下又細分為多個子模塊,本系統(tǒng)的功能模塊結(jié)構(gòu)如圖4-1所示。
?
圖4-1系統(tǒng)總體功能框架圖
4.2 ?數(shù)據(jù)庫設(shè)計
表結(jié)構(gòu)設(shè)計:
all_categories表是所有檔案文件表父表信息,本表結(jié)構(gòu)如圖4-2所示。
?
圖4-2檔案父表設(shè)計圖
user表是用戶表信息,本表結(jié)構(gòu)如圖4-3所示。
?
圖4-3用戶表設(shè)計圖
files表是土地登記表信息,本表結(jié)構(gòu)如圖4-4所示。
?
圖4-4檔案表設(shè)計圖
all_categories表是土地類別相關(guān)的表,可用于后期的檔案歸屬方面工作的管理,本表的結(jié)構(gòu)如圖4-5所示。
?
?圖4-5土地類別表設(shè)計圖
? ? 土地檔案管理系統(tǒng)的數(shù)據(jù)庫存放應與傳統(tǒng)的存檔方式相似,有兩種方案的選擇:第一種是只有一個父表,也只有一個子表,父表中存放各層父結(jié)點,以本表自聯(lián)結(jié)的方式可查詢,而子表中存放所有最底層目錄的文件,通過主外鍵的方式關(guān)聯(lián);第二種是每級目錄都建一張表,多張表將文檔的層次關(guān)系明確表示出來。
? ? 鑒于本設(shè)計是將該系統(tǒng)的部分功能實現(xiàn)出來,在數(shù)據(jù)量不夠大的情況下選擇第二種設(shè)計方式,以更直觀的展現(xiàn)數(shù)據(jù)。而實際中將所有數(shù)據(jù)放在一個Model中的方式更加高效。
?
5 ?詳細設(shè)計
5.1 ?登陸模塊設(shè)計
Login.java
? ? 接受登錄頁面?zhèn)魉蛠淼挠脩舻卿浶畔?#xff0c;對輸入信息訪問數(shù)據(jù)庫判定是否允許登陸,允許則調(diào)到主頁面,否則跳轉(zhuǎn)回之前的登錄頁面。
UserServerImpl.java
? ? 繼承IUserServer接口,實現(xiàn)login()方法,開啟數(shù)據(jù)庫事務,調(diào)用dao層方法,實現(xiàn)登錄功能。
UserDaoImpl.java
? ? 繼承IUserDao接口,通過對數(shù)據(jù)庫的直接操作,將數(shù)據(jù)傳輸給上層,完成登錄功能。
5.2 ?注冊模塊設(shè)計
Register.java
? ? 接受注冊頁面所傳送來的用戶注冊信息,對輸入的信息傳給server層進行邏輯處理。
UserServerImpl.java
? ? 繼承IUserServer接口,實現(xiàn)register()方法,開啟數(shù)據(jù)庫事務,調(diào)用dao層方法,實現(xiàn)注冊功能。
UserDaoImpl.java
? ? 繼承IUserDao接口,通過對數(shù)據(jù)庫的直接操作,將數(shù)據(jù)傳輸給上層,完成注冊功能。
5.3 ?文件查詢模塊設(shè)計
FindFiles.java
? ? 接受查詢頁面?zhèn)鱽淼耐恋靥枖?shù)據(jù),以土地號信息為依據(jù),調(diào)用server層的方法進行處理。
FileServerImpl.java
? ? 繼承IFileServer接口,實現(xiàn)getAllFiles()方法,開啟數(shù)據(jù)庫事務,調(diào)用dao層方法,實現(xiàn)按土地號查詢功能。在接收到dao層傳回的數(shù)據(jù)后將數(shù)據(jù)傳給頁面顯示。
UserDaoImpl.java
? ? 繼承IFileDao接口,通過對數(shù)據(jù)庫的直接操作,將數(shù)據(jù)傳輸給上層,完成查詢功能。
5.4 ?文件添加模塊設(shè)計
AddFiles.java
? ? 接受添加頁面?zhèn)鱽淼耐恋匚募畔?#xff0c;調(diào)用server層的方法進行處理。
FileServerImpl.java
? ? 繼承IFileServer接口,實現(xiàn)addFile()方法,開啟數(shù)據(jù)庫事務,調(diào)用dao層方法,先驗證數(shù)據(jù)庫是否有相同信息,在沒有的情況下向數(shù)據(jù)庫中添加數(shù)據(jù)。并返回顯示添加成功后的數(shù)據(jù)庫中存儲的信息。
UserDaoImpl.java
? ? 繼承IFileDao接口,通過對數(shù)據(jù)庫的直接操作,執(zhí)行對數(shù)據(jù)庫的增加操作,完成添加新文件功能。
5.5 ?文件修改模塊設(shè)計
UpdateFiles.java
? ? 接受修改頁面?zhèn)鱽淼耐恋匚募畔?#xff0c;調(diào)用server層的方法進行處理。
FileServerImpl.java
? ? 繼承IFileServer接口,實現(xiàn)addFiles1()方法,開啟數(shù)據(jù)庫事務,先驗證對象是否為空,在非空的條件下,調(diào)用dao層的方法。并返回顯示修改成功后的數(shù)據(jù)庫中存儲的信息。
UserDaoImpl.java
? ? 繼承IFileDao接口,通過對數(shù)據(jù)庫的直接操作,把新數(shù)據(jù)覆蓋原始數(shù)據(jù),完成修改文件的功能。
5.6 ?文件刪除模塊設(shè)計
DelFiles.java
? ? 接受刪除文件的請求,調(diào)用server層的方法進行處理。
FileServerImpl.java
? ? 繼承IFileServer接口,實現(xiàn)delFiles()方法,開啟數(shù)據(jù)庫事務,先驗證對象是否為空,在非空的條件下,調(diào)用dao層的方法。并返回顯示刪除的結(jié)果。
UserDaoImpl.java
? ? 繼承IFileDao接口,通過對數(shù)據(jù)庫的直接操作,把數(shù)據(jù)刪除。
6 ?系統(tǒng)實現(xiàn)
6.1 ?用戶相關(guān)
6.1.1 ?登陸界面
登錄功能介紹:
上面的截圖為登錄頁面的一部分,通過該頁面實現(xiàn)登錄過程。當使用者有一個用戶的時候,可以通過其已擁有的用戶名和密碼來進行登錄,只有在用戶名和密碼都正確的時候才可以成功登陸。如果沒有本系統(tǒng)的賬戶時,可以通過注冊功能注冊一個用戶,然后通過注冊完成的用戶登錄本系統(tǒng)。
? ? 系統(tǒng)登陸界面如圖6-1所示。
?
圖6-1登陸界面
登錄功能核心代碼:
Login.java
package com.ex.web;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.ex.bean.Users;
import com.ex.common.BeanFactory;
import com.ex.common.exception.UserServiceException;
import com.ex.service.imp.UserServiceImpl;
public class Login extends HttpServlet {
?? ?private static final long serialVersionUID = 1L;
?? ?private ?UserServiceImpl ?service = (UserServiceImpl)BeanFactory.getBean("userService");
? ? public Login() {
? ? ? ? super();
? ? }
?? ?protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
?? ??? ?String name = request.getParameter("username");
?? ??? ?String password = request.getParameter("password");
?? ??? ?try {
?? ??? ??? ?Users users = service.login(name, password);
?? ??? ??? ?HttpSession session = request.getSession();
?? ??? ??? ?session.setAttribute("users", users);
?? ??? ??? ?request.getRequestDispatcher("/host.jsp").forward(request, response);
?? ??? ?} catch (UserServiceException e) {
?? ??? ??? ?e.printStackTrace();
?? ??? ??? ?request.setAttribute("message", "<script laguage='JavaScript'> alert('用戶名或密碼錯誤,請重新輸入!') </script>");
?? ??? ??? ?request.getRequestDispatcher("/login.jsp").forward(request, response);
?? ??? ?}
?? ?}
?? ?protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
?? ??? ?doGet(request, response);
?? ?}
}
6.1.2 ?注冊頁面
注冊功能介紹:
? ? 當某人要使用本系統(tǒng)的時候,需要有一個賬戶來進行登錄,登陸之后才可以進行系統(tǒng)的操作。當沒有賬戶時,可以快捷的通過登錄頁面的注冊鏈接進入系統(tǒng)的注冊頁面,輸入一個任意的符合規(guī)則的用戶名和密碼,以及一些其他的個人信息。當填寫完信息之后想要對已填寫的信息進行重新編輯,可以點重置按鈕清空已填寫的信息,然后可以重新錄入你個人的注冊信息。注冊成功后則會成功跳轉(zhuǎn)到登錄頁面使用新注冊的賬戶進行登錄。
? ? 用戶注冊頁面如圖6-2所示。
?
圖6-2注冊頁面
注冊功能核心代碼:
Register.java?
package com.ex.web;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.hibernate.Session;
import com.ex.bean.Files;
import com.ex.bean.Users;
import com.ex.common.HibernateSessionFactory;
import com.ex.common.exception.UserServiceException;
import com.ex.dao.imp.UserDaoImpl;
import com.ex.service.imp.UserServiceImpl;
public class Register extends HttpServlet {
?? ?private static final long serialVersionUID = 1L;
?? ?private UserServiceImpl service = new UserServiceImpl();
?? ?protected void doGet(HttpServletRequest request,
?? ??? ?HttpServletResponse response) throws ServletException, IOException {
?? ??? ?request.setCharacterEncoding("UTF-8");
?? ??? ?String name = request.getParameter("name");
?? ??? ?String password = request.getParameter("password");
?? ??? ?String email = request.getParameter("email");
?? ??? ?String zip = request.getParameter("zip");
?? ??? ?String address = request.getParameter("address");
?? ??? ?String phonenumber = request.getParameter("phonenumber");
?? ??? ?// System.out.println(name + address + telephone);
?? ??? ?Session session = HibernateSessionFactory.getSession();
?? ??? ?List list = session.createQuery("from Users").list();
?? ??? ?
?? ??? ?Users users = new Users();
?? ??? ?users.setId(list.size()+1);
?? ??? ?users.setAddress(address);
?? ??? ?users.setEmail(email);
?? ??? ?users.setPassword(password);
?? ??? ?users.setName(name);
?? ??? ?users.setZip(zip);
?? ??? ?users.setPhoneNumber(phonenumber);
?? ??? ?try {
?? ??? ??? ?service.register(users);
?? ??? ??? ?request.getRequestDispatcher("/login.jsp").forward(request,
?? ??? ??? ??? ??? ?response);
?? ??? ?} catch (UserServiceException e) {
?? ??? ??? ?request.getRequestDispatcher("/register.jsp").forward(request,
?? ??? ??? ??? ??? ?response);
?? ??? ??? ?e.printStackTrace();
?? ??? ?}
?? ?}
?? ?protected void doPost(HttpServletRequest request,
?? ??? ??? ?HttpServletResponse response) throws ServletException, IOException {
?? ??? ?doGet(request, response);
?? ?}
}
6.2 ?檔案相關(guān)
6.2.1 ?檔案列舉
代碼列舉功能的介紹:
? ? 在左側(cè)的導航樹中點擊想要查詢的文件檔案分類的模塊,進入其功能的詳細顯示頁面。在這個頁面上將直接顯示本分類下所有文件的基本信息,通過對于本頁面顯示的文件檔案的簡要信息,了解其基本信息之后可以進行后續(xù)操作。比如要進行檔案的查詢時需要先知道其土地號,通過土地號來進行土地檔案的查詢。
? ? 檔案列表頁面如圖6-3所示。
?
圖6-3檔案列表
檔案列舉功能核心代碼:
java.sql.Connection sqlCon;?
java.sql.Statement sqlStmt;?
java.sql.ResultSet sqlRst;?
java.lang.String strCon;?
java.lang.String strSQL;?
int intPageSize;?
int intRowCount;
int intPageCount;?
int intPage;?
java.lang.String strPage;
int i;
intPageSize = 5;
strPage = request.getParameter("page");
if(strPage==null){
intPage = 1;
}
else{
intPage = java.lang.Integer.parseInt(strPage);
if(intPage<1) intPage = 1;
}
java.sql.DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
strCon = "jdbc:oracle:thin:@localhost:1521:orcl";
sqlCon = java.sql.DriverManager.getConnection(strCon,"dsg","dsg");
sqlStmt=sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
strSQL = "select gnum,squre,type,usedfor,people,location from files";
sqlRst = sqlStmt.executeQuery(strSQL);
sqlRst.last();
intRowCount = sqlRst.getRow();
intPageCount = (intRowCount+intPageSize-1) / intPageSize;
if(intPage>intPageCount) intPage = intPageCount;
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>檔案分頁顯示</title>
</head>
<body>
<table border="1" cellspacing="0" cellpadding="0">
<tr>
<th>土地號</th>
<th>面積(單位:平方米)</th>
<th>土地類型</th>
<th>土地用途</th>
<th>擁有者</th>
<th>地址</th>
</tr>
<% if(intPageCount>0){
sqlRst.absolute((intPage-1) * intPageSize + 1);
i = 0;
while(i<intPageSize && !sqlRst.isAfterLast()){ %>
<tr>
<td width="150" align="center"><%=sqlRst.getString(1)%></td>
<td width="150" align="center"><%=sqlRst.getString(2)%></td>
<td width="150" align="center"><%=sqlRst.getString(3)%></td>
<td width="150" align="center"><%=sqlRst.getString(4)%></td>
<td width="150" align="center"><%=sqlRst.getString(5)%></td>
<td width="150" align="center"><%=sqlRst.getString(6)%></td>
</tr>
<%
sqlRst.next();
i++;}}
%>
</table>
第<%=intPage%>頁 共<%=intPageCount%>頁 <%if(intPage<intPageCount){%><a href="sele.jsp?page=<%=intPage+1%>">下一頁</a><%}%> <%if(intPage>1){%><a href="sele.jsp?page=<%=intPage-1%>">上一頁</a><%}%>
</body>
</html>
總結(jié)
以上是生活随笔為你收集整理的基于java的土地档案管理系统设计(含源文件)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL笔记-SQL语句中可以使用单引
- 下一篇: 用框图说明计算机控制系统,计算机控制系统