收稿日期:2023-10-20
DOI:10.19850/j.cnki.2096-4706.2024.07.006
摘? 要:地鐵PIS系統(tǒng)為乘客提供高質(zhì)量的站點廣播服務(wù)和運營信息服務(wù),是軌道交通車載服務(wù)系統(tǒng)的重要組成部分。為了提升地鐵的安全級別和服務(wù)質(zhì)量,實現(xiàn)PIS系統(tǒng)的網(wǎng)絡(luò)平臺信息化共享,提高信息交流效率和處理能力,設(shè)計一個基于Java語言的地鐵數(shù)據(jù)庫網(wǎng)站。采用Java和MySQL數(shù)據(jù)庫等工具,使用行業(yè)最新的Spring+Springmvc+Mybatis三大框架在Eclipse平臺上開發(fā)而成。采用Bootstrap前端開發(fā)框架可使用戶獲得更好的使用體驗,使程序使用更加方便快捷。目前該數(shù)據(jù)庫網(wǎng)站已應(yīng)用于某公司地鐵PIS系統(tǒng)管理,初步取得了良好的應(yīng)用效果。
關(guān)鍵詞:Java;MySQL;Web;Springmvc;數(shù)據(jù)庫網(wǎng)站
中圖分類號:TP393? 文獻標識碼:A? 文章編號:2096-4706(2024)07-0025-05
Design and Implementation of Subway Database Website Based on Java Language
WAN Zhiqiang
(Dalian West Technology Co., Ltd., Dalian? 116031, China)
Abstract: The subway PIS system provides passengers with high-quality station broadcasting services and operational information services, and is an important component of the rail transit on-board service system. In order to improve the safety level and service quality of the subway, achieve informati-zation sharing of the network platform of the PIS system, improve information exchange efficiency and processing ability, it designs a subway database web-site based on Java language. Developed on the Eclipse platform using tools such as Java and MySQL databases, as well as the latest Spring+Springmvc+Mybatis frameworks in the industry. Using the Bootstrap front-end development framework can provide users with a better using experience and make program usage more convenient and efficient. At present, the database website has been applied to the management of a certain company's subway PIS system, and has achieved pre-liminary good application effects.
Keywords:? Java; MySQL; Web; Springmvc; database website
0? 引? 言
地鐵是城市現(xiàn)代化的一個重要標志。我國的人口密度較高,發(fā)展地鐵可大大緩解交通壓力[1]。近年來,隨著全國各地掀起地鐵建設(shè)熱潮,地鐵車載PIS服務(wù)系統(tǒng)也日趨完善。但是對應(yīng)的數(shù)據(jù)共享服務(wù)和數(shù)據(jù)網(wǎng)絡(luò)建設(shè)相對發(fā)展較慢,這也在使用中使客戶的使用體驗略顯不足。
綜上,本文設(shè)計了地鐵PIS設(shè)備數(shù)據(jù)庫管理網(wǎng)站,該網(wǎng)站是以Spring和Springmvc為框架,以Web為顯示端口,以MySQL數(shù)據(jù)庫為存儲單元,以Java語言為橋梁的數(shù)據(jù)服務(wù)線上網(wǎng)站。該網(wǎng)站集成了所有PIS數(shù)據(jù)的存儲,以映射網(wǎng)站的形式共享給客戶和開發(fā)人員,從而實現(xiàn)資源共享和歷史數(shù)據(jù)查詢。通過該網(wǎng)站能夠顯著縮短設(shè)備運轉(zhuǎn)流通的時間,高效定位問題,有序排列和搜尋所需數(shù)據(jù),使用者可便捷直觀地實時查看運行數(shù)據(jù),從而擺脫了人工查詢的煩瑣,實現(xiàn)了24小時的無間斷運行。而傳統(tǒng)基于JDBC開發(fā)的網(wǎng)站存在維護困難、當數(shù)據(jù)或功能發(fā)生變化后因編碼變化大而導(dǎo)致編寫工作量大等不足。而在新架構(gòu)模式下以上問題都能得到有效解決,完全符合我國信息時代高速發(fā)展的要求。
1? 總體方案設(shè)計
基本功能結(jié)構(gòu)框圖如圖1所示,具體分為數(shù)據(jù)庫表設(shè)計、Web框架設(shè)計、數(shù)據(jù)庫連接和Web轉(zhuǎn)發(fā)設(shè)計。通過數(shù)據(jù)庫表設(shè)計來存儲區(qū)分管理員級別和錄入信息存儲單元的格式,通過服務(wù)器Web框架的設(shè)計來實現(xiàn)數(shù)據(jù)對應(yīng)到瀏覽器的模式和外觀[2],而數(shù)據(jù)庫連接和Web轉(zhuǎn)發(fā)設(shè)計則是連接以上功能的橋梁。以上理念貫穿了網(wǎng)站設(shè)計的全流程,進而實現(xiàn)了數(shù)據(jù)到Web的輸出,瀏覽器也會將更新、修改、刪除、增加等請求提交到Web服務(wù)器,Web服務(wù)器通過數(shù)據(jù)庫建立的關(guān)聯(lián)完成這些工作。
當用戶登錄時服務(wù)器就會進行身份識別,而對應(yīng)的賬號信息存儲在MySQL表中,通過增加或修改用戶名和密碼來實現(xiàn)登錄操作,Web端發(fā)起驗證后會通過HTTP服務(wù)器轉(zhuǎn)發(fā)到Web服務(wù)器調(diào)用到對應(yīng)的處理程序進行驗證,驗證成功后再通過Web的框架設(shè)計模式進入對應(yīng)的功能頁。例如管理員模式的首選頁面就是list界面,list界面通過之前的Web設(shè)計關(guān)聯(lián)了搜索功能、編輯功能、增加功能、刪除功能等,而這些功能對應(yīng)的頁面也是我們之前設(shè)計好的框架模式,每個頁面包含的具體功能點則是通過Mybatis等架構(gòu)設(shè)計JSP或XML文件將數(shù)據(jù)庫和Web進行一一對應(yīng)[3]。以上模式完全可以通過SQL語句滿足操作數(shù)據(jù)庫的所有需求,不會受到傳統(tǒng)模式依賴于Web頁面之類的限制,不會對應(yīng)用程序或數(shù)據(jù)庫的現(xiàn)有設(shè)計帶來任何影響,將業(yè)務(wù)邏輯和數(shù)據(jù)訪問邏輯分離,使系統(tǒng)的架構(gòu)更清晰、更易維護。
圖1? PIS數(shù)據(jù)庫結(jié)構(gòu)框
2? 功能模塊設(shè)計
2.1? 數(shù)據(jù)庫表設(shè)計
MySQL是一個廣受Linux社區(qū)人們喜愛的半商業(yè)數(shù)據(jù)庫,MySQL的守護進程消耗很少的內(nèi)存,故而選擇Navicat 15 for MySQL作為數(shù)據(jù)庫進行編譯和連接,它支持多種操作系統(tǒng),支持多種開發(fā)語言,提供多種API接口,靈活安全的權(quán)限和密碼系統(tǒng)允許主機的基本驗證,連接到服務(wù)器時所有的密碼傳輸均采用加密形式,從而保證了密碼的安全。數(shù)據(jù)庫功能設(shè)計分為兩個部分:管理員表單設(shè)計、詳細信息表單設(shè)計。
管理員表單的主要用途是區(qū)分不同登錄人員的權(quán)限和所能調(diào)用的資源,而詳細信息表單設(shè)計的初衷是記錄我們所需的信息來實現(xiàn)增刪改查等功能,同時基于MySQL的特有功能簡化了備份和恢復(fù)環(huán)節(jié),單靠數(shù)據(jù)導(dǎo)入/導(dǎo)出就可以完美復(fù)制這一功能。另外MySQL不使用原始的分區(qū),所有的數(shù)據(jù)庫數(shù)據(jù)能用一個文件系統(tǒng)備份保存,數(shù)據(jù)庫活動能被記載,與通常的數(shù)據(jù)庫日志不同,例如LOAD DATA INFILE命令為數(shù)據(jù)導(dǎo)入賦予很大的靈活性,SELECT INTO命令實現(xiàn)了數(shù)據(jù)導(dǎo)出的功能,MySQL常用的語句有以下幾種[4]:
1)創(chuàng)建一個數(shù)據(jù)庫:user MySQL> CREATE DATABASE user。
2)將每條數(shù)據(jù)加入數(shù)據(jù)庫對應(yīng)的表單中:MySQL> insert into mytable。
3)查詢數(shù)據(jù)庫所有數(shù)據(jù):MySQL> select * from mytable。
4)修正數(shù)據(jù)庫:MySQL> update mytable set name = "MVB" where name = "mvb"。
5)增加一列:MySQL> alter table mytable add column password char(1)。
6)刪除數(shù)據(jù)列:MySQL> delete from mytable where name='MVB'。
而表設(shè)計和表管理等操作都是在以上前提(基于但不限于)下進行的,具體實例如圖2所示。
2.2? Web框架設(shè)計
Web界面作為最直觀地顯示界面既是窗口又是整個項目的框架,編譯所采用的Spring和Springmvc開發(fā)框架是當下最流行的Web端框架,對Web頁面的美化起到不可替代的作用[5],同時在客戶端使用Spring等進行數(shù)據(jù)驗證,降低了服務(wù)器的負荷,減小了傳輸網(wǎng)絡(luò)帶寬,無形中也提升了用戶的體驗度。如今很多的大型網(wǎng)站都是使用類似的框架進行開發(fā),涉及眾多行業(yè),如金融、電信、醫(yī)療等。
采用結(jié)構(gòu)化、面向?qū)ο蠛突诮M建的開發(fā)模式進行架構(gòu)優(yōu)化,具體結(jié)構(gòu)框架如圖3所示。
圖3? 項目模塊結(jié)構(gòu)框圖
Spring框架改進了傳統(tǒng)的架構(gòu)[6],使其更具擴展性和靈活性,控制器和模型之間實現(xiàn)了緊密耦合:Spring通過使用控制反轉(zhuǎn)和DI依賴注入來解決這個問題,如圖4所示為實際開發(fā)中使用的目錄腳本架構(gòu)圖。在Spingmvc架構(gòu)模型下構(gòu)建代碼,當瀏覽器或客戶端向服務(wù)器Servlet發(fā)起請求時,經(jīng)過服務(wù)器處理后調(diào)用到映射器Mapping,而映射器的作用是根據(jù)處理器的請求找到對應(yīng)的處理器,對應(yīng)的處理器我們暫且稱為后端處理器Ctrl,經(jīng)過后端處理器Ctrl處理后形成ModleandView結(jié)果,而處理適配器HandlerAdapter會將從Ctrl接收的處理結(jié)果ModleandView返回到服務(wù)器Servlet,最后服務(wù)器會將ModleandView發(fā)送給視圖解析器進行解析渲染,ViewReslvor渲染后再反饋到客戶端顯示。不同于傳統(tǒng)框架只提供接口,Springmvc提供一套完整的組件供直接使用,這就相當于傳統(tǒng)框架只給你提供設(shè)計圖紙,你需要根據(jù)設(shè)計圖紙把工具造出來,而Springmvc直接給你一套現(xiàn)成的工具箱,里面有你用得到的各種工具,不需要編寫大量的代碼只需調(diào)用對應(yīng)的工具包就可以實現(xiàn)某種目的,而Springmvc另外一個讓我們選擇的點就是它的可擴展性好,能夠通過升級工具進行功能更新,而其本身則是以Spring為基礎(chǔ)框架,所能擴展的功能相對于其他工具來說更豐富實用。
圖4? Spingmvc模塊結(jié)構(gòu)框圖
作為代碼編譯的主體部分主要分為login登錄界面、list列表界面、edit編輯界面、info信息記錄界面:
1)login登錄界面。設(shè)計登錄人員權(quán)限和數(shù)量代碼示例如下: