




已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
大學本科畢業(yè)設計(論文)題 目:基于MVC模式下機關辦公自動化系統(OA-B)核心功能的實現Subject:The corn function design of OA-B system based on MVC pattern姓 名: 學 號:專 業(yè):計算機軟件學 院:計算機信息工程學院指導老師:完成時間:摘 要MVC模式是一種可應用于J2EE的開放式框架結構。它允許Web頁面或其它瀏覽內容(視圖層)能夠最大限度的與內部代碼(模型/控制層)分離開來,從而使設計者和程序員能夠將注意力集中在他們各自的專門技術上。并因Java的“一次寫入后,任何處運行”的特性而提高了開發(fā)效率。本論文著眼于在JBuilder環(huán)境下應用MVC模式開發(fā)機關辦公自動化系統的核心功能,即發(fā)/收文管理、工作流控制以及用戶管理。本論文以我們OA小組開發(fā)的機關辦公自動化系統WebOA為例,介紹了由本人參與設計的發(fā)/收文工作流模塊和用戶管理模塊的相關技術,并進行程序結構分析和具體功能實現闡述。關鍵詞:MVC模式 J2EE相關組件 機關辦公自動化 發(fā)收文管理 工作流 用戶管理ABSTRACTMVC is an open source framework for JSP Web applications. This design model allows the Web page or other contents (View) to be mostly separated from the internal application code (Controller/Model), making it easier for designers and programmers to focus on their respective areas of expertise. It improve the efficiency of the development process thanks to JAVA “Write Once, run anywhere” nature.This dissertation focuses on implementation of MVC patterns to develope Office Automatic system for Bureau (OA-B) which run on JBuilder environment, and mainly introduce its kernel functions theory such as Message Send&Receive Manage, Workflow Control and User Manage .This dissertation introduces the function of implemented office automation for bureau named WebOA by our OA team . It also expatiate its relative technology which were concerned and designed by me as well as this systems Message Send&Receive Manage , Workflow Control and User Manage structure and analysis of implementation in details. Keyword:MVC Patterns J2EE relative technology OA-B Message Send&Receive Manage Workflow Control UserManage目 錄第一章 緒 論錯誤!未定義書簽。1.1 研究背景錯誤!未定義書簽。1.2 OA-B概念的提出錯誤!未定義書簽。第二章 系統相關技術簡介錯誤!未定義書簽。2.1系統開發(fā)架構錯誤!未定義書簽。2.2系統所采用的主要技術分析錯誤!未定義書簽。2.2.1系統采用的MVC模式架構錯誤!未定義書簽。2.2.2系統采用的J2EE相關標準組件技術錯誤!未定義書簽。2.2.3Browser/Server系統的三層體系結構錯誤!未定義書簽。2.3 系統的運行環(huán)境和開發(fā)平臺錯誤!未定義書簽。2.3.1系統的開發(fā)平臺錯誤!未定義書簽。2.3.2 系統運行環(huán)境錯誤!未定義書簽。第三章 系統功能結構錯誤!未定義書簽。3.1 OA-B模式錯誤!未定義書簽。3.1.1基本需求:報文傳遞功能錯誤!未定義書簽。3.1.2應用模式:工作流錯誤!未定義書簽。3.1.3數據整合:復合型文檔錯誤!未定義書簽。3.2 本系統功能模塊錯誤!未定義書簽。第四章 核心子系統模塊設計錯誤!未定義書簽。4.1 發(fā)/收文管理錯誤!未定義書簽。4.1.1 M-V-C模式分析發(fā)文管理錯誤!未定義書簽。4.1.2 發(fā)文工作流數據庫實現錯誤!未定義書簽。4.1.3 收文查詢中值對象控制錯誤!未定義書簽。4.2 用戶權限管理錯誤!未定義書簽。4.2.1用戶權限的數據庫邏輯結構錯誤!未定義書簽。4.2.2用戶管理數據庫的物理結構錯誤!未定義書簽。第五章 小 結錯誤!未定義書簽。結 語錯誤!未定義書簽。致 謝錯誤!未定義書簽。參考文獻錯誤!未定義書簽。附 錄:發(fā)文管理源代碼錯誤!未定義書簽。第一章 緒 論1.1 研究背景辦公自動化(Office Automation,簡稱OA),是以先進成熟的計算機和通信技術為主要手段,建成一個覆蓋政府企業(yè)等部門的辦公信息系統,提供企事業(yè)單位與其他專用計算機網絡之間的信息交換,建立高質量、高效率的政府信息網絡,為領導決策和辦公提供服務,實現辦公現代化、信息資源化、傳輸網絡化和決策科學化。由于OA所含蓋的范疇太廣,只要是與信息通信相關的辦公軟件仿佛都可以與OA掛鉤,導致市場中的OA產品質量水平參差不齊,盡管客戶對其需求量大,但能滿足要求的產品并不多,我們通過調研發(fā)現,主要有如下缺陷:1 功能華而不實。不少產品看上去非常全面,很多功能卻難以實現,而且真正核心的功能做的并不深入,反而造成資源上浪費。2 面向群體無針對性。OA是要面向客戶群體的,很多產品標榜其可以用在任何辦公環(huán)境,但結果是哪里都能用,哪里都用不好。OA工作環(huán)境的性質決定其必須能針對某類工作流程比較固定的單位。3 行業(yè)規(guī)范性不強。OA針對的是具有一定辦公標準的行業(yè),這就要求所研制的軟件應用時有嚴格的且符合該行業(yè)設計規(guī)范公文文檔和工作流程1.2 OA-B概念的提出從上述要求出發(fā),我們提出OA-B(Office Automation for Bureau)的概念,即機關辦公自動化系統。機關辦公自動化系統是實現機關內部各級部門之間以及機關內外部之間辦公信息的收集與處理、流動與共享、實現科學決策的具有戰(zhàn)略意義的信息系統。經過市場調查,我們發(fā)現,一個成功的OA-B最應具有是以下特點:1 能適應靈活多變辦公自動化業(yè)務的流程化處理手段。2各子系統間數據集成化,且OA系統能在不同職能部門系統間完成信息雙向傳遞。而這些系統本身可以是完全異構的、分散的。3由于涉及重要的政務辦公信息,信息系統的的安全性與完整性,及可配置管理是隨時應該考慮的特性。4技術的符合標準與先進性。特別是辦公文檔和工作流程必須符合所應用行業(yè)的規(guī)范。第二章 系統相關技術簡介2.1 系統開發(fā)架構本系統采用JSP+Servlet+JavaBean的三層架構開發(fā)模式。此模式遵循視圖控制器M-V-C模式,其基本構想是使用一個或多個Servlet作為控制器。請求由前沿的Servlet接收并處理后,會重新定向到JSP。在Servlet作為控制器時,每個Servlet通常只實現很少一部分功能,多個Servlet控制器就可以結合起來完成復雜的任務,這樣的好處是Servlet的重用性好。在此模式中,JavaBean作為模型的角色,它充當JSP和Servlet通信的中間工具,Servlet處理完后設置Bean屬性,JSP讀取此Bean的屬性,然后進行顯示。此模式更加明顯的把顯示和邏輯分離,使代碼容易管理,適合于大型項目的開發(fā),所以在本系統中采用了這種模式。此模式的數據傳遞關系如圖1-1所示。圖1-1 OA-B開發(fā)模式數據傳遞關系2.2 系統所采用的主要技術分析2.2.1 系統采用的MVC模式架構通過模型、視圖和控制架構(M-V-C)以實現簡單高效的應用程序升級和維護,以及如何讓不懂程序代碼的人員避開程序數據。MVC的架構是一個描述重現的問題及其解決方案的設計范式,但每次問題重現時,解決方案都不會完全相同。MVC設計范式包括三種對象:1、模型(model)提供應用業(yè)務邏輯(Enterprise Beans類)。2、視圖(view)則是其在屏幕上的顯示(html頁面、JSP頁面、Swing GUI)3、控制器則是Servlet、JavaBeans或Session Beans類,它用于管理用戶與視圖發(fā)生的交互。2.2.2 系統采用的J2EE相關標準組件技術J2EE平臺為多層的分布式模型,組件再用,一致化的安全模型以及靈活的事務控制。應用客戶組件、Enterprise Beans組件、Servlet及JSP頁面組件、Applet等。1、JSP(Java Server Pages)技術本系統中充當MVC的V部分視圖表示(Viewer)。2、Servlet技術Applet的服務器端版本,是由Web服務器裝入、用于處理客戶請求的Java程序。本系統中作為MVC中的C部分控制器(Controller)。3、JavaBean技術重用組件技術(獨立的可重復利用的模塊,負責數據庫交互以及數據提取,許多動態(tài)頁面處理過程被封狀到了JavaBeans中)本系統中作為MVC中的M部分模型(Model)。4、JDBC技術是用于執(zhí)行SQL語句的Java應用程序接口,由一組用Java語言編寫的類與接口組成, JSP中通過JDBCODBC橋驅動程序訪問訪問數據庫。本系統中主要與三層架構中的數據層進行交互。2.2.2 Browser/Server系統的三層體系結構在Browser/Server的系統中,用戶可以通過瀏覽器向分布在網絡上的許多服務器發(fā)出請求。Browser/Server結構極大的簡化了客戶機的工作,客戶機上只需安裝、配置少量的客戶端軟件即可,服務器將擔負更多的工作,對數據庫的訪問和應用程序的執(zhí)行將在服務器上完成。在Browser/Server三層體系結構下,表示層(Presentation)、功能層(Business Logic)、數據層(Data Service)被分割成三個相對獨立的單元:第一層-表示層:Web瀏覽器在表示層中包含系統的顯示邏輯,位于客戶端。它的任務是由Web瀏覽器向網絡上的某一Web服務器提出服務請求,Web服務器對用戶身份進行驗證后用HTTP協議把所需的主頁傳送給客戶端,客戶機接受傳來的主頁文件,并把它顯示在Web瀏覽器上。第二層-功能層:具有應用程序擴展功能的Web服務器在功能層中包含系統的事務處理邏輯,位于Web服務器端。它的任務是接受用戶的請求,首先需要執(zhí)行相應的擴展應用程序與數據庫進行連接,通過SQL等方式向數據庫服務器提出數據處理申請,而后等數據庫服務器將數據處理的結果提交給Web服務器,再由Web服務器傳送回客戶端。第三層-數據層:數據庫服務器在數據層中包含系統的數據處理邏輯,位于數據庫服務器端。它的任務是接受Web服務器對數據庫操縱的請求,通過JDBC/JavaBean訪問數據庫,實現對數據庫查詢、修改、更新等功能,把運行結果提交給Web服務器。通過分析可以看出,三層的Browser/Server體系結構是把二層Client/Server結構的事務處理邏輯模塊從客戶機的任務中分離出來,由單獨組成的一層來負擔其任務,這樣客戶機的壓力大大減輕了,把負荷均衡地分配給了Web服務器2.3 系統的運行環(huán)境和開發(fā)平臺2.3.1 系統的開發(fā)平臺建議使用Borland公司推出的用于連接數據庫以及Web應用開發(fā)平臺產品JBuilder作為我系OA實驗室的相關系統的開發(fā)工具。2.3.2 系統運行環(huán)境1、服務器端運行環(huán)境服務機:有網絡接口卡(NIC)的高性能PC機,512M RAM,硬盤80G以上。 操作系統:Windows 2000 SERVERWeb服務器:APACHE TOMCAT數據庫服務器:MICROSOFT SQL SERVER 20002、客戶端運行環(huán)境客戶機:有網絡接口卡(NIC)的PC機,128M RAM,操作系統:Windows 2000 Professional瀏覽器:Microsoft Internet Explorer 5.0以上。第三章 系統功能結構3.1 OA-B模式就一般來說,OA-B均以公文處理和機關事務管理為核心,同時提供信息通訊與服務等重要功能。因此,典型的OA應用包括收發(fā)文審批簽發(fā)管理、公文流轉傳遞、政務信息采集與發(fā)布、內部請示報告管理、檔案管理、會議管理、領導活動管理、政策法規(guī)庫、內部論壇等等應用。核心功能概念的提出如果我們從系統功能角度對上述辦公自動化應用做一分析,就會發(fā)現辦公自動化軟件的這樣幾個功能其中的核心功能,即報文傳遞、工作流、復合型文檔,可以說是最小子集。如圖31。協同工作安全性控制Internet報文傳遞工作流復合文檔這些功能需求是我們選擇辦公自動化應用 圖31系統的開發(fā)與使用平臺時必須考慮的判斷依據: 3.1.1 基本需求:報文傳遞功能報文傳遞系統作為信息傳遞與共享的工具和手段,滿足OA-B最基本的通信需求。換言之,MTS(Message Transportation System)作為通信基礎設施,主要提供了兩方面的功能:從信息技術的角度出發(fā),報文傳遞功能是一種“推”技術,即發(fā)送方(Sender)將信息通過存儲轉發(fā)技術推給接收方(Receiver)。從用戶使用習慣出發(fā),報文傳遞功能是辦公自動化系統的“門戶”。因為在OA上工作的人員很容易養(yǎng)成一種工作習慣,每日查看自己的收件箱,閱讀處理有關信件;而且功能高級完整的報文傳遞系統一般都具備新信件到達提示功能。因此,OA-B可以利用報文傳遞系統的特點將每一項需要工作人員處理的信息或通知,制成信件,直接投遞到工作人員的收件箱中。在一個OA-B中,針對不同的業(yè)務需求,通常包含了多個應用子系統,如發(fā)文、收文、信息服務、檔案管理、活動安排、會議管理等等,可以將收件箱作為所有這些辦公應用子系統的統一“門戶”,每一個用戶通過關注自己的收件箱就可以了解到需要處理的工作,而不必經常性地來回檢查不同的應用系統,看看哪些是需要處理的工作(在這種情況下,如果由于某種人為原因,沒有及時查閱某個應用系統,就可能造成工作的延誤)。辦公自動化應用系統以報文傳遞作為統一入口的設計思想,可以大大減少培訓的工作量。3.1.2 應用模式:工作流所謂的工作流就是一組人員為完成某一項業(yè)務所進行的所有工作與工作間的交互過程。幾乎所有的業(yè)務過程都是工作流,特別是辦公自動化應用系統的核心應用公文審批流轉處理、會議管理等。每一項工作以流程的形式,由發(fā)起者(如文件起草人)發(fā)起流程,經過本部門以及其他部門的處理(如簽署、會簽),最終到達流程的終點(如發(fā)出文件、歸檔入庫)。工作流程可以是互相連接、交叉或循環(huán)進行的,如一個工作流的終點可能就是另一個工作流的起點,如上級部門的發(fā)文處理過程結束后引發(fā)了下級部門的收文處理過程。工作流程也可是打破單位界限的,發(fā)生于機關以及與機關的相關單位之間。如及時地收回和賦予不同人員的操作權限(如起草人起草文件完畢即不可修改文件內容,而其上級領導獲得文件的簽署權或對內容的修改權)、主動提示和催促工作人員實現某一階段的處理,從而整體提高工作流處理的效率。工作流自動化有2種實現模式,即:基于郵件和基于共享數據庫?;卩]件的工作流應用,就是通過郵件將數據表單從一個人郵箱傳送到另一個人郵箱。其特點是模式簡單。但是,最大的弊病是無法實行監(jiān)控,沒有一個管理者可以隨時掌握工作流的動態(tài)。其它問題包括:難以實現自動化處理如通過代理催辦、集中歸檔、統計;數據容易出現多份拷貝,難以控制安全性和準確性;大量的郵件傳輸引發(fā)大量的網絡流量。基于共享數據庫的工作流應用,可以克服上述基于郵件的工作流缺點。如信息單一存儲,自動處理,安全性更好,容易實現監(jiān)控。但是,工作流的驅動成了一個問題,因為缺乏信息通訊機制,無法主動通知有關人員進行下一步的工作。本系統工作流采用基于共享數據庫模式開發(fā)。3.1.3 數據整合:復合型文檔復合文檔型數據不同于傳統數據類型。辦公自動化所處理信息的載體大多是以文件、報表、信函、傳真等形式出現,因此辦公自動化系統是典型的文檔處理系統。對“復合文檔數據”或“對象數據”的表示和存儲管理是數據庫技術領域的新領域。一般認為,關系數據庫系統(如Oracle、DB/2、SQL Server、Foxpro等)適合傳統數據類型(結構化信息)的表示和存儲,但是對復合文檔數據的處理就有“削足適履”之感,并非能夠完全表達信息和存儲效率最高。因此,“文檔數據庫”或“對象存儲”的概念就被引入數據庫領域,其目標就是針對新出現的需求,高效率地表達和存儲管理“復合文檔數據”。一言以蔽之,辦公自動化系統由于其對復合文檔數據的處理要求,必須以文檔數據庫為核心建立,同時選擇性地結合關系數據庫。從信息技術的角度出發(fā),數據庫技術代表了“拉”技術,即信息共享技術。信息被集中存儲管理,當用戶需要信息時,主動地將數據庫中的信息“拉”到自己的工作站上進行處理。另外,作為擴展功能的協同工作、必須具備的安全性控制以及可附加的Internet集成功能也在辦公自動化系統中扮演著重要的角色。3.2 本系統功能模塊其基本思想是把整個系統按照實現功能進行分解利用JSP+JavaBean+Servlet進行編程。已實現的系統的功能結構模塊如圖3-2所示。OA系統個人辦公 公共辦公工作流管理系統管理行政辦公部門管理用戶管理圖3-2 OA-B系統結構圖而其下又可以分為子系統結構圖。用戶管理子系統用戶注冊模塊用戶信息管理模塊用戶信息修改模塊管理員登錄模塊公告欄模塊用戶密碼修改模塊用戶登錄模塊用戶查詢模塊留言板模塊圖3-3 用戶管理子系統功能模塊圖第四章 核心子系統模塊設計前面我們已經提出了作為一個OA系統的核心功能應是報文傳遞、工作流和復合型文檔,再加上對用戶人員的權限管理,我們即可以稱之為一個精簡功能的OA-B系統,已能應付一般的機關處室的日常工作。我們知道,在OA-B中對應報文傳遞功能的實現發(fā)/收文管理,而在從發(fā)文到收文的過程中又可以看成是一個工作流。因此,毫無疑問,在OA-B系統中是它是真正的核心。用戶做為支撐該軟件中的“人”的因素,不可或缺的是一個用戶權限管理功能。而在其中有包含了與動態(tài)管理相對應的數據庫連接技術。本章我們以發(fā)/收文管理和用戶管理的實現為例,介紹OA-B設計原理。4.1 發(fā)/收文管理因為對每一種對象的管理都比較類似,在此僅以行政辦公中的發(fā)文、收文管理公文為例,來分析一下本系統中的數據流向。根據圖1-1的OA-B開發(fā)模式數據傳遞圖我們可以大致了解到發(fā)文過程的原理,即有圖4-1。4.1.1 M-V-C模式分析發(fā)文管理SenderServletHTTPRequestForward讀取ModelViewJavaBeanweb.xmlJDBC數據庫發(fā)文擬稿頁面QuerryController圖4-1 發(fā)文模式數據傳遞實例圖第一步:ControllerModelSQL Server用戶作為擬稿完成后,通過Http發(fā)出發(fā)文請求(Send Request),作為的控制器的Servlet通過調用Web配置文件web.xml向JavaBean發(fā)出控制信號,并對其賦值。而JavaBean中的一個值對象(Value Object,即VO)將通過JDBC連接SQL Server數據庫,從中調出所需信息返回給VO,實現了在模型層與數據庫的交互。第二步:ControllerViewerModelServlet又向JSP發(fā)出從JavaBean中讀取數據庫信息的信號,在視圖層的JSP頁面在從JavaBean調出信息,生成發(fā)文擬稿頁面,完成一次發(fā)文。4.1.2 發(fā)文工作流數據庫實現在本系統中,發(fā)文模塊流程為參考流程為:開始 申請人(擬稿)提交同部門工作人員(核稿) 部門領導(審稿或會簽) 辦公室文員(校稿)辦公室主任(定稿) 單位領導(簽發(fā))擬稿人(處室復核) 公文管理員(歸檔) 結束以擬稿到和核稿為例,流程圖為圖4-2所示。開始擬稿提交核稿是否合格合格YN結束核稿提交圖4-2 發(fā)文管理從審稿到核稿流程圖由于整個發(fā)文流程很復雜,故我們采用樹型結構來實現它,表4-1為其在SQL中的發(fā)文流程的結點表。表4-2為發(fā)文工作流信息表。表4-2中已定義了各字段的屬性,而其中的Direction是控制方向,R值代表指向后一步操作,L值代表指向前一操作,這樣就保證了流程的通暢。表4-1發(fā)文工作流表Node_No_SNode_No_EDirectionFlow_nameFlow_DescOrder_byWorkflow_No00000010000002R擬稿提交從擬稿到核稿000000100000020000003R核稿提交從核稿到審稿100000100000020000001L核稿退回從核稿退回到擬稿200000100000030000004R審稿提交從審稿到校稿300000100000030000001L審稿退回從審稿退回到擬稿400000100000040000005R校稿提交從校稿到定稿500000100000040000001L校稿退回從校稿退回到擬稿600000100000050000006R定稿提交從校稿到簽發(fā)700000100000050000004L定稿退回從定稿退回到校稿800000100000060000007R簽發(fā)提交從定稿到簽發(fā)900000100000060000001L簽發(fā)退回從簽發(fā)退回到擬稿1000000100000070000008R打印發(fā)送歸檔提交從簽發(fā)到打印發(fā)送歸檔110000010000008R完成發(fā)文歸檔發(fā)文歸檔12000001表4-2 發(fā)文工作流信息表表 名字段名類型大小可空約束備注WorkFlow_MessageNode_Nointeger7N主鍵指向編號Node_No_Sinteger7N頭結點編號Node_No_Einteger7Y尾結點編號Directionvarchar1N結點方向Flow_Namevarchar100N結點名Flow_Descvarchar100N流向名Order_byinteger7N順序號Workflow_Nointeger7N工作流編號4.1.3 收文查詢中值對象控制在4.1.1文中我們已提出值對象(VO)的概念,這里有必要在聲明以下什么是值對象,即用于把數據從某個對象/層傳遞到其他對象/層的Java對象。它提供了一個或一組值的實體信息。收文流程為流程:開始 辦公室人員(登記)提交辦公室主任(擬辦) 單位領導(批示) 主辦處室負責人(主辦)協辦處室負責人(分辦) 辦公室文員(打印排版,發(fā)送)公文管理員(歸檔) 結束。不難發(fā)現,收文流程和發(fā)文是很類似的,另外,在收文管理中還提供了四個功能,即登記、處理、閱讀和查詢。而它們就是通過值對象的傳遞控制的。下面我們將以收文查詢?yōu)槔?,分析值對象在其中的作用:當點擊收文查詢,進入“公文收文【查詢】”頁面,就可以按來文標題、來文文號、來文單位、緊急程度、公文密級、收文編號、收文日期、備注等信息進行組合查詢。系統根據你的查詢條件返回查詢頁面,然后你就可以瀏覽查詢結果中你所需的公文。以下是收文查詢的算法:package .ssct.oa.doc.persistence; / 加載persistence包import .ssct.oa.doc.valueobject.DocRecVO; / 調用VO值對象import .ssct.DBConnBean;import java.sql.Connection; /*根據主鍵查詢收文值對象 *param id 公文編號 * return docRecVO對象,如果不存在返回一個空對象,但不允許返回 null */ public DocRecVO queryByID(String id) DocRecVO docRecVO = null; PreparedStatement stat = null; ResultSet rs = null; String strSql = select * from Doc_Tb_Rec where RecDocNo=? ; / 嵌入sql語句查詢 .ssct.DBConnBean ObjDBConnBean = .ssct.DBConnBean.getInstance(); Connection conn =ObjDBConnBean.getConnection(goa); try stat = conn.prepareStatement(strSql); stat.setString(1,id); rs = stat.executeQuery(); while (rs.next() docRecVO = new DocRecVO(); docRecVO.setRecDocNo(rs.getString(RecDocNo); docRecVO.setCome_Title(rs.getString(Come_Title); docRecVO.setCome_Doc_No(rs.getString(Come_Doc_No); docRecVO.setCome_Doc_Dept(rs.getString(Come_Doc_Dept); docRecVO.setDC_Doc_Exigence(rs.getString(DC_Doc_Exigence); docRecVO.setDC_Doc_Security(rs.getString(DC_Doc_Security); docRecVO.setIn_Doc_No(rs.getString(In_Doc_No); docRecVO.setIn_Doc_Date(rs.getString(In_Doc_Date); docRecVO.setIn_Doc_Dept(rs.getString(In_Doc_Dept); docRecVO.setCome_Content(rs.getString(Come_Content); docRecVO.setMemo(rs.getString(Memo); docRecVO.setFile_ID(rs.getString(File_ID); docRecVO.setEnter_User_No(rs.getString(Enter_User_No); docRecVO.setEdit_DateTime(rs.getString(Edit_DateTime); docRecVO.setEnter_DateTime(rs.getString(Enter_DateTime); docRecVO.setRecordID(rs.getString(RecordID); docRecVO.setTemplate(rs.getString(Template); docRecVO.setFileType(rs.getString(FileType); docRecVO.setHTMLPath(rs.getString(HTMLPath); docRecVO.setStatus(rs.getString(Status);docRecVO.setMain_Do_User_Nos(rs.getString(Main_Do_User_Nos);docRecVO.setOther_Do_User_Nos(rs.getString(Other_Do_User_Nos);docRecVO.setRead_Do_User_Nos(rs.getString(Read_Do_User_Nos); docRecVO.setSend_RecordID(rs.getString(Send_RecordID); /*按來文標題、來文文號、來文單位、緊急程度、公文密級、收文編號、收文日期、備注等信息進行組合查詢*/ catch (SQLException e) SysDebug.prt(this,queryByID(String),strSql,e); finally ObjDBConnBean.freeConnection(goa,conn); return docRecVO;/* * 根據動態(tài)SQL語句查詢 * param conditionSql 動態(tài)SQL語句 * return Collection,如果不存在返回一個空集合,但不允許返回 null */ public Collection queryByDynamicSql(String conditionSql) ArrayList docRecVOList = new ArrayList(); DocRecVO docRecVO = null; Statement stat = null; ResultSet rs = null; String strSql = ; if(conditionSql.equalsIgnoreCase()/沒選定任何條件 strSql = select * from Doc_Tb_Rec ; else strSql = select * from Doc_Tb_Rec Where + conditionSql; .ssct.DBConnBean ObjDBConnBean = .ssct.DBConnBean.getInstance(); Connection conn =ObjDBConnBean.getConnection(goa); try stat = conn.createStatement(); rs = stat.executeQuery(strSql); while (rs.next() docRecVO = new DocRecVO(); docRecVO.setRecDocNo(rs.getString(RecDocNo); docRecVO.setCome_Title(rs.getString(Come_Title); docRecVO.setCome_Doc_No(rs.getString(Come_Doc_No); docRecVO.setCome_Doc_Dept(rs.getString(Come_Doc_Dept); docRecVO.setDC_Doc_Exigence(rs.getString(DC_Doc_Exigence); docRecVO.setDC_Doc_Security(rs.getString(DC_Doc_Security); docRecVO.setIn_Doc_No(rs.getString(In_Doc_No); docRecVO.setIn_Doc_Date(rs.getString(In_Doc_Date); docRecVO.setIn_Doc_Dept(rs.getString(In_Doc_Dept); docRecVO.setCome_Content(rs.getString(Come_Content); docRecVO.setMemo(rs.getString(Memo); docRecVO.setFile_ID(rs.getString(File_ID); docRecVO.setEnter_User_No(rs.getString(Enter_User_No); docRecVO.setEdit_DateTime(rs.getString(Edit_DateTime); docRecVO.setEnter_DateTime(rs.getString(Enter_DateTime); docRecVO.setRecordID(rs.getString(RecordID); docRecVO.setTemplate(rs.getString(Template); docRecVO.setFileType(rs.getString(FileType); docRecVO.setHTMLPath(rs.getString(HTMLPath); docRecVO.setStatus(rs.getString(Status);docRecVO.setMain_Do_User_Nos(rs.getString(Main_Do_User_Nos);docRecVO.setOther_Do_User_Nos(rs.getString(Other_Do_User_Nos);docRecVO.setRead_Do_User_Nos(rs.getString(Read_Do_User_Nos); docRecVO.setSend_RecordID(rs.getString(Send_RecordID); docRecVOList.add(docRecVO); catch (SQLException e) SysDebug.prt(this,queryByDynamicSql(String),strSql,e); finally ObjDBConnBean.freeConnection(goa,conn); return docRecVOList; 首先,在一開始要調用一個persistence包以使VO(值對象)與數據庫之間的數據交互,然后建立JDBC連接,以便JavaBean將VO的值傳給SQL。在根據條件如來文標題、來文文號、來文單位、緊急程度、公文密級、收文編號、收文日期、備注等信息進行組合查詢,這一步將調用SQL的查詢語句完成,而在最后生成一個view.jsp的頁面文件。我們利用UML語言建立上述收文查詢的順序圖,它是用來描述對象之間的動態(tài)合作關系以及合作過程中的行為次序。它包含一系列對象:ClientViewServletSearch (Rec VO)View.jsp SQL數據庫。虛線表示該對象的生命線。箭頭表示消息串??杉毞譃楹唵蜗⑷?,2,3,4,5,7,8和異步消息如6,9。ClientViewServletSearch (Rec VO)View.jspSQL數據庫3:返回查詢結果集2:執(zhí)行查詢操作1:查詢公文4:創(chuàng)建用于保存結果的Collection對象5:從數據庫查詢結果集中讀取數據,設置Collection6:把Collection保存到request中7:forward8:讀取結果9:顯示圖5-11 收文查詢操作的順序圖4.2 用戶權限管理在WebOA系統中,主要是管理用戶的一系列活動,包括公告、通知等來輸入的數據信息。數據類型決定了處理的方式也就是算法,因此,數據是系統實現的起點。在此,我們將使用數據流圖(DFD)來分析數據的流動和走向。因為對每一種對象的管理都比較類似,在此僅以行政辦公中的公文管理的權限,來分析一下本系統中的數據流向.主要數據關系是管理員對該子系統涉及的相關數據進行管理,而用戶在前臺可以瀏覽查詢相關信息,總體圖如圖3-1所示。零級圖如圖3-2所示。0用戶管理子系統用戶查詢條件查詢結果和瀏覽信息下載信息注冊登錄信息管理員更新數據提供數據圖4-3 用戶管理子系統總體圖管理員用戶
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 紅嘴鷗考試題及答案
- 高一英語完形測試題及答案
- 山東中考數學試題及答案
- 注會試題及答案
- 園區(qū)春節(jié)促銷活動方案
- 國慶幼兒園教師活動方案
- 噴漆項目活動方案
- 售后營銷活動方案
- 周年續(xù)費活動方案
- 韓語閱讀考試題及答案
- 【課件】新高三啟動主題班會:啟航高三逐夢未來
- 長鑫存儲在線試題及答案
- 小學勞動教育校本課程開發(fā)實踐與研究
- 森林草原防火 無人機巡查技術規(guī)范 編制說明
- 2025-2030中國發(fā)泡聚苯乙烯泡沫行業(yè)市場現狀供需分析及投資評估規(guī)劃分析研究報告
- 不寐的中醫(yī)護理常規(guī)
- 《能源的科普講解》課件
- 國開《當代中國政治制度》形考任務1-4參考答案
- 2024年山東省交通運輸行業(yè)職業(yè)技能競賽(裝卸機械電器修理工)試題庫(含答案)
- 廣州初中數學知識點總結(共40頁)
- 流動資金缺口測算表
評論
0/150
提交評論