基于S2SH的城市公交查询系统车次站点及换乘查询和OD毕业设计论文.docx
《基于S2SH的城市公交查询系统车次站点及换乘查询和OD毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于S2SH的城市公交查询系统车次站点及换乘查询和OD毕业设计论文.docx(46页珍藏版)》请在冰豆网上搜索。
基于S2SH的城市公交查询系统车次站点及换乘查询和OD毕业设计论文
天津职业技术师范大学
TianjinUniversityofTechnologyandEducation
毕业论文
基于S2SH的城市公交查询系统
-----车次、站点及换乘查询和OD
UrbanPublicTransportQuerySystemBasedOnS2SH
--Trips,SiteAndTransferInquiriesAndOD
专业班级:
软件0901
学生姓名:
指导教师:
学院:
信息技术工程学院
2013年6月
摘要
今城市改造日益加快,公交线路也不断增多,使得交通的便捷性难上加难,给出行人员选择出行乘车线路造成一定的困难,特别是在旅游城市,游客在乘公交车时选择线路比较困难,它不仅可以给市民游客的乘车提供向导,同时可以对外展现城市的现代风貌,体现出一个城市公交信息数字化和信息化的发展水平。
所以本系统拥有非常成熟的市场。
该公交路线查询系统采用Java、JSP作为前台的应用程序开发语言、采用DIV+CSS布局进一步美化页面。
利用MySQL创建后台的数据库,在MyEclipse10.0的开发环境下采用S2SH(Struts2+Hibernate+Spring)整合框架技术进行开发,三层MVC结构提高了系统扩展性和易维护性。
从而实现了六大功能:
查询功能、OD调查分析功能、用户登录注册功能、用户个人中心、车次管理和公告管理。
该公交路线查询系统,旨在利用需要建立一个以高效的公交数据库为基础的、面向公交线路的在线公交车线路查询系统。
关键字:
公交路线查询系统;S2SH框架;OD调查
ABSTRACT
Thisurbantransformationever-accelerating,buslineshavecontinuedtoincrease,makingtheconvenienceoftransportationevenmoredifficulttotravelerschoosetotravelbycarlinemaycausesomedifficulty,especiallyinthetouristcity,touristsbuslinecomparisondifficulties,itcannotonlyridetothepublicvisitorswizardcanbegintoshowthemodernstyleofthecity,reflectingthelevelofacitybusdigitizationofinformationandthedevelopmentofinformationtechnology.Sothesystemhasaverymaturemarket.
ThebusroutequerysystemusingJava,JSPasaforegroundapplicationdevelopmentlanguage,DIV+CSSlayoutfurtherbeautifythepage.MySQLtocreateabackgrounddatabasedevelopmentenvironmentinMyEclipse10.0S2SH(Struts2+Hibernate+Spring)integrationframeworktechnologydevelopmentthethreeMVCstructuretoimprovethesystemscalabilityandeaseofmaintenance.Inordertoachievethesixfunctions:
queryfunction,theODinvestigationandanalysisfunctions,userloginregistrationfunction,theuser'spersonalcenter,trainmanagementandannouncementsmanagement.
Thebusrouteinquirysystem,designedtotakeadvantageoftheneedtoestablishanefficientpublictransportdatabase-based,onlinebuslinequerysystemforbuslines.
KeyWords:
TheBusroutequerythesystem;S2SHframework;ODsurvey
5.1.3换乘查询的设计和实现18
1绪论
1.1项目背景
随着城市日新月异的发展,城市的规模不断扩大。
为了满足发展的需要,城市公共交通运输的覆盖面越来越广,公交线路也日渐增多,成为绝大多数出行者的首选方式。
这在给人们的出行带来了极大便利的同时。
但是随着公交系统的庞大,人们很难得到准确的公交信息,这样给一些人的出行就带来了不便。
因此,急需一个方便、快捷的公交信息查询方式。
本系统通过浏览器查询,实现中心控制、自动更新、更多的查询方式等等更多更强大的功能。
西方国家对这一点重视的较早,如美国、日本、加拿大、英国、法国等国家都投入了较大的人力和物力从事智能公共交通系统研究,并已取得了显著的成果,建立了一种在公交网络的基础上,运用计算机网络技术、数据库技术、通信技术、电子技术、智能卡技术等先进科学技术,形成集智能化调度、公交电子收费、信息服务、网络通信于一体的公共交通规划管理系统。
其中的公共交通优化系统对公交线网布局、公交线路配置、站点布置、发车间隔确定、票价制定等进行设计和优化,从规划方面提高公交服务水平。
而我国城市公交乘客信息系统的发展处还于一个落后的水平,公交信息的完整性和准确性得不到保证,而且还没有专门的机构负责信息的发布和管理。
乘客可以获得的公交信息很少,而且获取方式以常规手段为主,一般获得公交信息的方式局限于电话,交通图,向熟人问讯等常规方式,获得线路、站点等基本信息。
另外乘客出行过程中获得信息困难,除少数几个城市乘客可以通过分布于城市中的若干电子站牌获得些公交车辆的运营信急以外,在其它城市,“出行中”的乘客无法获得仟何信息。
所以从国内公交信息与规划的发展需求和国外发展趋来看,需要建立一个以高效的公交数据库为基础的、面向公交线路的在线公交车线路查询系统。
1.2课题内容
我国城市公交乘客信息系统的发展处于一个较落后的水平,广大乘客可以获得信息的方式很少,为了解决这种问题,加快发展城市公交信息化,设计一个城市公交查询系统是具有一定实际应用意义的。
本系统采用了功能强大的Java语言与Mysql数据库的完美结合,提供用户一个完全开放的查询平台。
管理员经过统一身份认证后可以对公交线路及站点进行添加、删除、修改等功能。
用户进入相关页面后可以根据个人需要进行站点换乘查询、公交线路查询、公交站点查询功能。
本系统包含六大功能:
查询功能、OD调查分析功能、用户登录注册功能、用户个人中心、车次管理和公告管理。
本文实现了系统的两大功能:
查询功能和OD调查分析功能。
模块与模块之间存在很强的逻辑关系,是按照对客户关系的管理的流程而设计。
例如查询功能中含有车次查寻、站点查询和换成查询。
这些查询帮助用户更快地寻找到合适的路线。
OD调查分析功能根据来自用户的数据分析出该站点的OD矩阵信息为公交规划提供依据。
1.3课题意义与目的
公交查询系统是近两年出现的新生事物,每个城市的发展状况也是良莠不齐。
目前的公交查询系统,基本上具备一下功能:
采用车站站点查询、车次查询、站至站查询三种查询形式,不仅能够查询到各条线路的起止点,同时还能够分析出换乘车辆情况。
OD调查可以帮助弄清交通源和交通源之间的关系,获取道路网上交通流的构成、流量、流向、车辆起讫点,从而推求目标年的交通量,为交通规划等工作提供基础数据;为调整和改善道路系统功能,从系统和政策上对近远期工程项目排序提供依据;客观分析评价交通出行特征,特别是公交服务水平,为提高公交运行效率、制定相关政策提供依据。
2系统的开发工具和关键技术
这一阶段主要描述系统的开发工具、运行环境和相关技术。
2.1开发与运行环境
本系统利用MyEclipse10为后台代码的开发工具,apache-tomcat-6.0.35为运行服务器,MySQL5.5.30作为后台的数据库管理。
2.1.1Myeclipse10
MyEclipse10版本使用最高级的桌面和Web开发技术,包括HTML5和JavaEE6,支持JPA2.0、JSF2.0、Eclipselink2.1以及OpenJPA2.0.它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能。
完整支持HTML、Struts2、JSP、CSS、Javascript、Spring、SQL和Hibernate。
2.1.2Tomcat6.0
Tomcat是Apache软件基金会(ApacheSoftwareFoundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。
由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现,Tomcat6支持最新的Servlet3.0和JSP2.0规范。
因为Tomcat技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
Tomcat很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。
Tomcat是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
2.1.3MySQL5.5
MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle公司。
MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL的SQL语言是用于访问数据库的最常用标准化语言。
MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。
由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。
为多种编程语言提供了API。
这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。
提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。
2.2相关技术
本系统采用S2SH(Struts2+Spring+Hibernate)整合框架技术进行开发,它也是本系统的关键技术,下面对三个框架进行介绍。
2.2.1Struts2框架
Struts2是在WebWork这个框架基础上发展起来的,它不是struts1的升级,它在实现原理和编程应用上与struts1都完全不同,可以说是彻底抛弃了struts1的架构。
虽然WebWork在设计上却是要比struts1先进,但由于用户习惯问题,所以很难被普及,只有挂羊头卖狗肉才会被市场逐步接受,基于这些原因,WebWork开发团队与Struts1开发团队开始合作,借struts1之名,行WebWork之实,推出了Struts2。
Struts2相比struts1的劣势:
struts1是老牌框架,应用很广泛,有很好的群众基础,开发人员比较好招,项目开发的风险小,成本更低!
struts2虽然基于Webwork框架,但是应用人群虽多,相对不成熟,未知的风险和变化还很多,开发人员相对不好招,使用它开发项目的风险系数更大,用人成本更高!
Struts2相比struts1的优势:
struts2毕竟是站在前辈的基础设计出来,它会改善和完善struts1中的一些缺陷,struts1中的一些悬而未决问题在struts2得到了解决。
当表示层有了MVC模式,程序开发就会变得有章可循。
2.2.2Hibernate框架
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
Hibernate中提供了两级Cache,第一级别的缓存是Session级别的缓存,它是属于事务范围的缓存。
这一级别的缓存由hibernate管理的,一般情况下无需进行干预;第二级别的缓存是SessionFactory级别的缓存,它是属于进程范围或群集范围的缓存。
这一级别的缓存可以进行配置和更改,并且可以动态加载和卸载。
Hibernate还为查询结果提供了一个查询缓存,它依赖于第二级缓存。
2.2.3Spring框架
Spring是一个开源框架,是为了解决企业应用程序开发复杂性由RodJohnson创建的。
框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。
Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。
然而,Spring的用途不仅限于服务器端的开发。
从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益[5]。
Spring有如下的特点:
(1)方便解耦,简化开发
通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。
有了Spring,用户不必再为单实例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。
(2)AOP编程的支持
通过Spring提供的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应付。
(3)声明式事务的支持
在Spring中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量。
(4)方便程序的测试
可以用非容器依赖的编程方式进行几乎所有的测试工作,在Spring里,测试不再是昂贵的操作,而是随手可做的事情。
(5)方便集成各种优秀框架
Spring不排斥各种优秀的开源框架,相反,Spring可以降低各种框架的使用难度,Spring提供了对各种优秀框架(如Struts,Hibernate)等的直接支持。
(6)降低JavaEEAPI的使用难度
Spring对很多难用的JavaEEAPI(如JDBC,远程调用等)提供了一个薄薄的封装层,通过Spring的简易封装,这些JavaEEAPI的使用难度大为降低。
(7)Java源码是经典学习范例
Spring的源码设计精妙、结构清晰。
Spring框架源码无疑是Java技术的最佳实践范例。
如果想在短时间内迅速提高自己的Java技术水平和应用开发水平,学习和研究Spring源码将会使你收到意想不到的效果。
3需求分析
需求分析阶段基本任务是准确地回答“系统必须做什么?
”这个问题。
下面对系统进行功能需求和性能需求分析,确定系统功能。
3.1功能需求
城市公交查询系统为了能够为公司创造更多的财富,我国城市公交乘客信息系统的发展处于一个较落后的水平,广大乘客可以获得信息的方式很少。
为了解决这种问题加快发展城市公交信息化设计一个城市公交查询系统是具有一定实际应用意义的。
本文在本系统中涉及了查询功能、OD管理两个功能模块。
下面对这两个功能模块进行需求分析。
3.1.1查询功能
查询功能是整个系统的核心功能,良好的查询算法是提高性能的必要的方式,可以极大提高用户的体验和减少系统的压力。
(1)站点查询
通过站定可以得到经过此站点的所有车次和其详细信息。
(2)车次查询
输入相应的车次信息,可以获得该车次的详细信息。
(3)换乘查询
可以查询直达车、一次换乘车和二次换乘车。
一个良好的城市内部交通,最多只要经过两次换乘就可以从一个地点到达另一个地点,所以能够实现两次换成就可以了。
本系统便实现到了二次换乘。
3.1.2OD管理
公交出行空间分布的客流OD矩阵是城市公共交通线网布设和优化的基本依据。
传统公交OD调查方法是在乘客上车时发放调查表格,按照自己的出行起终点如实填写表格,然后在下车时回收表格。
这在实际操作时有些困难,因此本系统采用网上调查的方式进行OD调查,是的OD调查更急便捷。
3.1.3功能用例
3.2性能需求
为了保证系统能够长期、安全、稳定、可靠、高效的运行,城市公交查询系统应该满足以下的性能需求:
3.2.1系统处理的准确性和及时性
系统处理的准确性和及时性是系统的必要性能。
在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足企业对信息处理的需求。
由于公交查询系统的查询功能对于整个系统的功能和性能完成举足轻重。
作为系统的很多数据来源,而车票数量和时间又影响企业的决策活动,其准确性很大程度上决定了公交查询系统的成败。
在系统开发过程中,必须采用一定的方法保证系统的准确性。
3.2.2系统的开放性和系统的可扩充性
公交查询系统在开发过程中,应该充分考虑以后的可扩充性。
例如网上查询的用户查询的需求也会不断的更新和完善。
所有这些,都要求系统提供足够的手段进行功能的调整和扩充。
而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。
通过软件的修补、替换完成系统的升级和更新换代。
3.2.3系统的易用性和易维护性
公交查询系统是直接面对使用人员的,而使用人员往往对计算机并不时非常熟悉。
这就要求系统能够提供良好的用户接口,易用的人机交互界面。
要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。
公交查询系统中涉及到的数据是公交公司的相当重要的信息,系统要提供方便的手段供系统维护人员进行数据的备份,日常的安全管理,系统意外崩溃时数据的恢复等工作。
3.2.4系统的响应速度
公交查询系统在日常处理中的响应速度为秒级,达到实时要求,以及时反馈信息。
在进行统计分析时,根据所需数据量的不同而从秒级到分钟级,原则是保证操作人员不会因为速度问题而影响工作效率。
4系统设计
4.1系统框架设计
在B/S这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构,大多数或主要的业务逻辑都存在在服务器端,因此,B/S结构的系统不需要安装客户端软件,它运行在客户端的浏览器之上,系统升级或维护时只需更新服务器端软件即可,这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。
B/S结构系统的产生为系统面对无限未知用户提供了可能。
以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。
它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。
特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。
系统在实施过程中,表现层使用Struts,负责页面数据提取,页面动作相应;业务层使用Spring,主要负责业务逻辑的对象创建,表示层的Action的创建,以及持久层的DAO的创建;Hibernate负责把内存中的数据对象保存到数据库中,完成数据持久化的重任。
由于SSH框架是采用J2EE平台技术封装出来的可复用的软件开发框架,主要的目的是提高软件的可扩展性、可维护性和复用性,并能提高软件的开发效率。
4.2系统功能图
该图清楚的表现了系统所能够实现的功能,如图4-2所示。
本人在本系统中涉及了查询功能和OD管理两个功能模块。
图4-1系统功能图
4.3数据库的设计
4.3.1概念模型设计
概念模型是对信息世界建模,所以概念模型应该能够方便、准确的表示出信息世界中的常用概念。
概念模型的使用方法很多,其中最为著名的是P.P.S.Chen于1976年提出的实体-联系方法,该方法用E-R图来描述现实世界的概念模型。
通过对本文涉及的查询功能和OD管理这两大模块的需求分析,现列出了该系统的局部E-R图和各个实体图(车次实体、站点实体等)。
图4-2数据库schema
、
图4-3站点实体
图4-4车次实体
图4-5用户实体
图4-6管理员实体
图4-7关注实体
图4-8收藏实体
图4-9公告实体
图4-10即时动态实体
4.3.2逻辑结构设计
(1)关系模式
站点(站点编号,站点名称,附近地区)
车次(车次编号,夏季发车时间,夏季停车时间,冬季发车时间,冬季停车时间,区间,发车时间间隔,票价)
车次-站点(车次编号,站点编号,站点顺序)
用户(用户邮箱,昵称,密码)
管理员(管理员编号,密码)
关注(用户邮箱,车次编号)
收藏(用户邮箱,起始站编号,终点站编号)
公告表(公告编号,公告主题,公告内容,发布时间,管理员编号)
留言表(留言编号,用户邮箱,留言内容,发布时间)
OD(车次编号,用户邮箱,起始站编号,终点站编号,频率)
(2)关系模式的实现
表4-1站点表(stop)
字段名
字段中文名
数据类型
长度
可否为空
id
站点编号
int
10
name
站点名称
varchar
20
near
附近地区
varchar
100
YES
4-2车次表(line)
字段名
字段中文名
数据类型
长度
可否为空
id
车次编号
varchar
10
sstime
夏季发车时间
datetime
setime
夏季停车时间
datetime
wstime
冬季发车时间
datetime
wetime
冬季停车时间
datetime
region
区间
varchar
50
fre
发