基于Java语言的地铁数据库网站设计与实现

2024-06-18 10:15万志强
现代信息科技 2024年7期

收稿日期:2023-10-20

DOI:10.19850/j.cnki.2096-4706.2024.07.006

摘  要:地铁PIS系统为乘客提供高质量的站点广播服务和运营信息服务,是轨道交通车载服务系统的重要组成部分。为了提升地铁的安全级别和服务质量,实现PIS系统的网络平台信息化共享,提高信息交流效率和处理能力,设计一个基于Java语言的地铁数据库网站。采用Java和MySQL数据库等工具,使用行业最新的Spring+Springmvc+Mybatis三大框架在Eclipse平台上开发而成。采用Bootstrap前端开发框架可使用户获得更好的使用体验,使程序使用更加方便快捷。目前该数据库网站已应用于某公司地铁PIS系统管理,初步取得了良好的应用效果。

关键词:Java;MySQL;Web;Springmvc;数据库网站

中图分类号: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  引  言

地铁是城市现代化的一个重要标志。我国的人口密度较高,发展地铁可大大缓解交通压力[1]。近年来,随着全国各地掀起地铁建设热潮,地铁车载PIS服务系统也日趋完善。但是对应的数据共享服务和数据网络建设相对发展较慢,这也在使用中使客户的使用体验略显不足。

综上,本文设计了地铁PIS设备数据库管理网站,该网站是以Spring和Springmvc为框架,以Web为显示端口,以MySQL数据库为存储单元,以Java语言为桥梁的数据服务线上网站。该网站集成了所有PIS数据的存储,以映射网站的形式共享给客户和开发人员,从而实现资源共享和历史数据查询。通过该网站能够显著缩短设备运转流通的时间,高效定位问题,有序排列和搜寻所需数据,使用者可便捷直观地实时查看运行数据,从而摆脱了人工查询的烦琐,实现了24小时的无间断运行。而传统基于JDBC开发的网站存在维护困难、当数据或功能发生变化后因编码变化大而导致编写工作量大等不足。而在新架构模式下以上问题都能得到有效解决,完全符合我国信息时代高速发展的要求。

1  总体方案设计

基本功能结构框图如图1所示,具体分为数据库表设计、Web框架设计、数据库连接和Web转发设计。通过数据库表设计来存储区分管理员级别和录入信息存储单元的格式,通过服务器Web框架的设计来实现数据对应到浏览器的模式和外观[2],而数据库连接和Web转发设计则是连接以上功能的桥梁。以上理念贯穿了网站设计的全流程,进而实现了数据到Web的输出,浏览器也会将更新、修改、删除、增加等请求提交到Web服务器,Web服务器通过数据库建立的关联完成这些工作。

当用户登录时服务器就会进行身份识别,而对应的账号信息存储在MySQL表中,通过增加或修改用户名和密码来实现登录操作,Web端发起验证后会通过HTTP服务器转发到Web服务器调用到对应的处理程序进行验证,验证成功后再通过Web的框架设计模式进入对应的功能页。例如管理员模式的首选页面就是list界面,list界面通过之前的Web设计关联了搜索功能、编辑功能、增加功能、删除功能等,而这些功能对应的页面也是我们之前设计好的框架模式,每个页面包含的具体功能点则是通过Mybatis等架构设计JSP或XML文件将数据库和Web进行一一对应[3]。以上模式完全可以通过SQL语句满足操作数据库的所有需求,不会受到传统模式依赖于Web页面之类的限制,不会对应用程序或数据库的现有设计带来任何影响,将业务逻辑和数据访问逻辑分离,使系统的架构更清晰、更易维护。

图1  PIS数据库结构框

2  功能模块设计

2.1  数据库表设计

MySQL是一个广受Linux社区人们喜爱的半商业数据库,MySQL的守护进程消耗很少的内存,故而选择Navicat 15 for MySQL作为数据库进行编译和连接,它支持多种操作系统,支持多种开发语言,提供多种API接口,灵活安全的权限和密码系统允许主机的基本验证,连接到服务器时所有的密码传输均采用加密形式,从而保证了密码的安全。数据库功能设计分为两个部分:管理员表单设计、详细信息表单设计。

管理员表单的主要用途是区分不同登录人员的权限和所能调用的资源,而详细信息表单设计的初衷是记录我们所需的信息来实现增删改查等功能,同时基于MySQL的特有功能简化了备份和恢复环节,单靠数据导入/导出就可以完美复制这一功能。另外MySQL不使用原始的分区,所有的数据库数据能用一个文件系统备份保存,数据库活动能被记载,与通常的数据库日志不同,例如LOAD DATA INFILE命令为数据导入赋予很大的灵活性,SELECT INTO命令实现了数据导出的功能,MySQL常用的语句有以下几种[4]:

1)创建一个数据库:user MySQL> CREATE DATABASE user。

2)将每条数据加入数据库对应的表单中:MySQL> insert into mytable。

3)查询数据库所有数据:MySQL> select * from mytable。

4)修正数据库:MySQL> update mytable set name = "MVB" where name = "mvb"。

5)增加一列:MySQL> alter table mytable add column password char(1)。

6)删除数据列:MySQL> delete from mytable where name='MVB'。

而表设计和表管理等操作都是在以上前提(基于但不限于)下进行的,具体实例如图2所示。

2.2  Web框架设计

Web界面作为最直观地显示界面既是窗口又是整个项目的框架,编译所采用的Spring和Springmvc开发框架是当下最流行的Web端框架,对Web页面的美化起到不可替代的作用[5],同时在客户端使用Spring等进行数据验证,降低了服务器的负荷,减小了传输网络带宽,无形中也提升了用户的体验度。如今很多的大型网站都是使用类似的框架进行开发,涉及众多行业,如金融、电信、医疗等。

采用结构化、面向对象和基于组建的开发模式进行架构优化,具体结构框架如图3所示。

图3  项目模块结构框图

Spring框架改进了传统的架构[6],使其更具扩展性和灵活性,控制器和模型之间实现了紧密耦合:Spring通过使用控制反转和DI依赖注入来解决这个问题,如图4所示为实际开发中使用的目录脚本架构图。在Spingmvc架构模型下构建代码,当浏览器或客户端向服务器Servlet发起请求时,经过服务器处理后调用到映射器Mapping,而映射器的作用是根据处理器的请求找到对应的处理器,对应的处理器我们暂且称为后端处理器Ctrl,经过后端处理器Ctrl处理后形成ModleandView结果,而处理适配器HandlerAdapter会将从Ctrl接收的处理结果ModleandView返回到服务器Servlet,最后服务器会将ModleandView发送给视图解析器进行解析渲染,ViewReslvor渲染后再反馈到客户端显示。不同于传统框架只提供接口,Springmvc提供一套完整的组件供直接使用,这就相当于传统框架只给你提供设计图纸,你需要根据设计图纸把工具造出来,而Springmvc直接给你一套现成的工具箱,里面有你用得到的各种工具,不需要编写大量的代码只需调用对应的工具包就可以实现某种目的,而Springmvc另外一个让我们选择的点就是它的可扩展性好,能够通过升级工具进行功能更新,而其本身则是以Spring为基础框架,所能扩展的功能相对于其他工具来说更丰富实用。

图4  Spingmvc模块结构框图

作为代码编译的主体部分主要分为login登录界面、list列表界面、edit编辑界面、info信息记录界面:

1)login登录界面。设计登录人员权限和数量代码示例如下:

欢迎使用 设备故障信息管理系统

option="{theme:'yellow_right_effect',stopOnError:true}">

placeholder="密码"data-rule="密码:required;password"id="password">

2)list列表界面。设计的功能是基于列表客户信息提供搜索功能,代码示例如下:

="输入客户名称搜索" id="sousuo"value ="${customer}">

3)edit编辑界面。主要功能是进行信息编辑录入,代码示例如下:

4)info信息记录界面。主要功能是记录单条信息,代码示例如下:

故障信息管理表

2.3  数据库连接和Web映射设计

数据库连接转化过程中起到关键作用的另外一个框架就是用MyBatis来实现的,MyBatis支持定制化存储过程的映射,MyBatis避免了几乎所有的JDBC代码以及手动设置参数与获取结果集,通过MyBatis可以使用简单的XML或注解来配置和映射原生信息,将接口和Java映射成数据库中的记录。因为对于传统的JDBC连接框架来说,Where条件不一定只有一个,可能有很多,这样占位符就要和参数一一对应,而当数据库发生变化时对应的代码也需要变化,相形之下,MyBatis省却了大量的冗余代码,所以我们采用MyBatis操作模式[7]。

而我们选择这种模式的大概流程如下:

1)读取配置文件mybatis-config.xml创建SqlSessionFactory会话工厂,一个配置文件可以加载多个映射文件,每个映射文件对应数据库中的一张表。

2)通过SqlSessionFactory创建SqlSession对象,每个对象包含执行SQL语句的所有方法。

3)通过Executor接口将SqlSession传递的参数生成SQL语句。

4)通过Executor接口的MappedStatement对SQL数据封装后形成Java类进行存储和输出。

我们建立数据库来存储数据利用编码来访问和修改数据,加载SQL映射文件,使用包导入的方式依次创建mapper包,新建映射文件,封装services功能[8],通过把后端的解析后数据发送到前端来实现。建立Web页面与数据库的连接,实现代码如下:

jdbc.type=MySQL

jdbc.driver=com.MySQL.jdbc.Driver

jdbc.url=jdbc:MySQL://localhost:3306/stusystem?useUnicode=true&characterEncoding=utf-8

jdbc.username=root

jdbc.password=123456

Web网页连接数据库是基于一种称为“服务器模式”的通信模型。在这种通信模型中,客户端通过网络向服务器发送请求,服务器接收并处理这些请求,然后向客户端返回所请求的数据。这种通信模型可以通过多种不同的协议(如TCP/IP、HTTP等)来实现。而在Web网页连接数据库中,常用的协议是HTTP协议,我们主要采用的映射就是通过域名申请花生壳等工具进行转发实现公网映射,JSP调用本地localhost之后[9],使用映射工具对本地localhost端口进行转发映射,通过HTTP代理的映射协议设置流量带宽映射模式等参数,如图5所示。

图5  映射配置图

3  功能实现和调试

3.1  信息预览

调试是产品设计过程中非常重要的一环,是检验设计成果的一种方法。数据库网站的最主要功能就是信息发布,能让地铁人做到足不出户尽知天下事,如图6所示为维护人员通过登录客户端进行信息更新后发布到Web页面的效果图,展现了Web与数据库表联动的过程。

3.2  信息查询

当用户不确定要浏览什么信息时,可能会无从下手。在线进行网站的数据库搜索,只需输入几个模糊的关键字即可,此功能涉及的JSP代码就是Web和数据库建立连接的功能模块,当输入想要搜寻的信息时,代码就可以按照要求显示出某一范围内的信息,从而快速确定浏览目标。如图7所示为搜索页面效果图交互相关的部分,采用类似设计理念的门户型网站就属于在线查询类网站,可以通过搜索引擎快速检索网站和网页的信息,使用户实现网络导航。

3.3  数据更新发布维护

作为可不断更新和维护的网站,数据的实时更新和维护是重中之重,如图8所示为更新页面效果图,通过更新修改删除页面等操作,维护人员把实时状态共享给地铁不同区域的工作人员,而相对于信息浏览和查询将数据调用出来的操作,数据更新则是将数据写到数据库中进行保存以便后续使用。

图8  更新效果图

程序测试到了这个阶段,代码结构得到了充分的展开,每一个组件充分的解藕,能够根据系统负载针对特定的瓶颈进行优化扩容升级。到了这个时候测试已没有了固定的模式,所以我们要做的就是尽量去除系统Bug找到优化空间[10],根据实时的需求去改变我们的输出结构。我们常用的MySQL都是OLTP型关系型数据库,也就是针对联机事务处理优化模式工作的数据库,并且是针对增删改查等操作进行专门优化,而相对于其他数据库来说这种模式的优点就是速度快、占用内存小。

我们针对性地进行了如下测试:

1)服务器速度测试。测试结果带宽超过1 Gbit/s。

2)数据存储测试。测试结果服务器录入超过千条内存占用不超过10 MB。

3)服务器占用前端和后端缓存测试。测试结果缓存4~8 GB可以流畅运行。

4)同时支持在线人数线程测试。测试结果支持在线人数超过10人。

5)后台表更新维护测试。测试结果每个数据表更新不超过5分钟。

4  结  论

本文通过Web设计的新旧架构对比和线下业务向线上发展效果的演示,体现了Web前端技术顺应时代变化的优势,其中包括单机程序、网络程序、终端模式、更新迭代以及架构模式,本文设计的架构在功能和性能上都有了很大的提高,另外作为网络媒介实现了多个区域不同人员的远程联动。优秀的框架相当于一个好的解决方案,节省了时间和人力成本,减少了bug的出现,可以使相关人员将更多的精力投放到业务和产品上,故而设计的网站在使用过程中得到了车厂和地铁售后人员的一致好评。

参考文献:

[1] 李宗凯.城市轨道交通车辆段上盖开发结构设计 [M].北京:中国建筑工业出版社,2022.

[2] 郭凯,孔繁玉,张有宽.Web前端开发实战 [M].北京:清华大学出版社,2023.

[3] 刘乃琦,王冲.JSP应用开发与实践 [M].北京:人民邮电出版社,2012.

[4] 赵明渊.MySQL数据库技术与应用 [M].北京:清华大学出版社,2021.

[5] 克雷格·沃斯.Spring实战:第6版 [M].北京:人民邮电出版社,2022.

[6] 方志朋.深入理解Spring Cloud与微服务构建:第2版 [M].北京:人民邮电出版社,2019.

[7] 江荣波.MyBatis 3源码深度解析 [M].北京:清华大学出版社,2019.

[8] 姜林枫,赵龙,徐长滔,等.数据库原理与应用技术 [M].北京:北京师范大学出版社,2020.

[9] 虞红芳,孙罡,狄浩,等.虚拟网络映射技术 [M].北京:科学出版社,2014.

[10] 杜庆峰.软件测试技术:第2版 [M].北京:清华大学出版社,2021.

作者简介:万志强(1982—),男,汉族,辽宁大连人,助理工程师,本科,研究方向:嵌入式设计与开发。