酷文首页  
站内搜索:
网站地图 | RSS订阅 | 收藏本站
经济论文
证券金融
工商管理
会计审计
法学论文
医药论文
社会论文
教育论文
计算机论文
艺术论文
哲学论文
财政税收
财务管理
公共管理
理学论文
政治论文
文学论文
工学论文
文化论文
实用文档
应用文
自考成考
演讲稿
法律文书
子栏目导行↓
网站赞助商↓
本类热点↓
本类更新↓
热门标签↓
网摘收藏↓

基于JAVA的长沙市公交系统乘车指南的设计与实现

作者:郭 程
来源:酷文网
点击:
载入中...
加入时间:2008-08-02
字体大小:[  ]

目前在数据持久层已经有很多现成的持久化中间件可供选用。如:Top Link、JDO、Hibernate[6]等。而Hibernate是一个基于Java的开源的中间件,它对JDBC做了轻量级的封装,不仅提供了对象-关系映射服务,还提供了数据查询和数据缓存的功能,并且其有丰富的API来帮助开发人员操纵数据库,所以选择Hibernate作为本项目的持久化中间件。
2.2.1  对象关系映射的基础
对象-关系映射(ORM, Object Relational Mapping)模式指的是在单个组件中负责所有实体域对象的持久化,封装数据访问的细节。
ORM解决的主要问题就是对象-关系的映射,即建立关系模型和域模型之间的联系。虽然域模型和关系模型都是建立在概念模型的基础之上的,但域模型是面向对象的,关系模型是面向关系的,一般情况下,一个持久化类和数据库中的一个表相对应,持久化类的每个实例对应表中的一条记录,持久化类的一个属性对应表的一个字段,特殊情况是一个关联的弱实体(弱实体即指自身没有单独的主键,而是以两个关联实体的主键作为自己的主键和外键)对应自身的一个表时,还会抽象出一个主键类。
2.2.2  数据库中表间一对多关系的映射规则
在关系数据库各种关系中,一对多关系应该是最普遍和最普通的关系,但其只存在着单向的关联关系,即只能由多方参照一方。然而在将一对多关系的表映射到持久化类时,我们可以实现双向的关联关系。
2.2.3  Hibernate对象持久化的集中状态
Java程序中的任何一个对象都是有生命周期的,当这个对象被引用时,它就一直存在于内存中,当这个对象不被任何变量引用,它就会结束生命周期,被Java 虚拟机的垃圾回收器在适当的时间时候回收它占用的内存。同样,持久化类通过new语句可以创建一个持久化类的对象,此时这个对象的生命周期就开始了,不同的是Hibernate持久化类的对象与Session缓存紧密相关,因为持久化类的对象引用与否都是通过Session来操作的,所以持久化对象在它的生命周期中会有以下两个状态:
临时状态:刚刚同过new语句创建,还未与数据库中的记录关联,也即没有被持久化,也不存在于Session缓存中,此时的Java对象称为临时对象。
持久化状态:位于Session缓存中,即与数据库中的相应记录对应,此时的Java对象称为持久对象。
2.2.4  Hibernate对象的编程接口
关系数据库经过Hibernate的封装之后,应用程序可以通过Hibernate的API来访问数据库,Hibernate API中的核心接口为:
(1) Configuration接口:用于配置并根启动Hibernate,并创建SessionFactory实例。
(2) SessionFactory接口:一个SessionFactory实例对应着一个数据的存储源,应用程序从SessionFactory里得到Session实例,可以说它是一个生产Session的工厂。SessionFactory是线程安全,所以它可以被多个线程共享,而且它是重量级的,因此不能随意的创建和销毁它。一般而言如果应用程序只需访问一个数据库的话,只需要创建一个SessionFactory实例。
(3)Session接口:Session接口被称为持久化管理器,它提供了很多持久化的相关操作,如:
添加:save()方法
更新:update()方法
删除:delete()方法
加载:load()方法
查询:createQuery()方法
Session是线程不安全的,所以应该避免多个线程共享同一个Session实例;且Session实例是轻量级的,所以Session实例的创建和销毁不需要消耗太多的资源。
(4) Transaction接口:它是操纵数据库事物的接口,是非常有用的,它能保证事物的一致性。
(5) Query和Criteria接口:这两个是Hibernate的查询接口,用于向数据库查询对象,以及控制执行查询的过程。这两个接口分别代表者两种不同的查询方式:Query代表者HQL(Hibernate Query Language)检索方式;Criteria接口代表者QBC(Query By Criteria)的检索方式,它更擅长于动态执行查询。
3  公交查询管理系统的分析与实现
3.1  公交查询管理系统的需求分析
长沙的城市化的进程也在不断加快。但随着城市的日益扩大,公交线路的延伸、城市的发展,众多线路和站点的设立,公交车的换乘问题却显得越来越严重。我们经常面对着成百上千条公交线路的指示牌,却不知该怎样转车来到达目的站点;或者是按着线路牌计算好了自己的换乘方案,最后到达目的地才发现这并不是最佳的方案。这种繁琐、复杂的路线换乘计算往往会浪费我们大量的时间,降低了我们的出行效率,特别是在这个生活节奏非常快的21世纪,效率的提高能够获得巨大的社会效益。因为好的一套公交车查询指南恰恰能解决上述问题,为人民的生活带来极大的方便。本系统采用现代化先进的软件开发技术,实现车次查询及管理,站台查询及管理,两地查询等主要功能。

3.1.1 总体结构图
    根据系统的总计结构绘图,系统分为五大模块,每个模块下有其子模块,如图1所示。
 图 1  总体结构图
Fig 1 System Structure Chart
首页,提供车次查询,站台查询,两地查询三种方便的查询方式。方便用户根据自己的具体需要来查询自己的出行路线。
车次管理模块实现的是对车次信息的管理,它通过把车次相关信息录入,对车次信息进行管理。本模块又划分为增加车次,删除车次,查询车次,更新车次4个子模块,其中增加车次是针对需求进行车次信息填写,并提交到数据库,登陆进入系统,可以查询车次,有时候车次信息需要进行修改,所以提供了相关功能方便管理员的操作。
站台管理模块实现的是对车次信息的管理,它通过把站台相关信息录入,对站台信息进行管理。本模块又划分为增加站台,删除站台,查询站台,更新站台4个子模块,其中增加站台是针对需求进行站台信息填写,并提交到数据库,登陆进入系统,可以查询站台,有时候站台信息需要进行修改,所以提供了相关功能方便管理员操作。
数据采集模块实现了只要按本系统指定格式输入原始数据到指定文本文档,该模块的三个方法就能自动实现对数据库中三个相对应的车次表,站台表,行程表自动插入数据,方便快捷,给管理员在数据采集方面提供相当大的帮助。

    用户管理模块实现的是对用户信息的管理,用户填写注册信息,然后进行登陆,系统会自动根据用户的权限提供给其相应的功能模块供他操作。
公交查询管理系统的退出功能,客户返回到原始登录页面。
3.2公交查询管理系统的用户权限图
    根据用户的权限进行绘图,普通用户只能进行车次查询、站点查询、站站查询,而管理员能进入所有模块进行操作,如图2所示。转贴于 酷文网-论文下载中心 http://www.coolwen.net


共13页: 上一页 [1] [2] 3 [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] 下一页

网摘收藏:
免责声明 | 关于我们 | 广告联系 | 友情链接 | 网站地图 | 共同合作
免费论文 毕业论文 毕业论文范文 酷文网(www.coolwen.net) 版权所有 coolwen.net 2007,All Rights Reserved
E-mail:hui_love#tom.com(为防止垃圾邮件请把#换成@) 点击这里给我发消息 点击这里给我发消息
湘ICP备07003917号