基于SSH的公交查询系统、公交车路线查询管理系统,附源码+数据库+论文+开题报告,适合课程设计、毕业设计

1、项目介绍

本系统是基于J2EE的公交查询系统,其中包括了公交查询系统的基本功能,并提供了用户留言的功能,方便根据用户提供的留言信息或是提出的建议对系统进行修改和完善,并提供了管理员用户后台维护公交信息的功能,做到能够实时添加和删除公交车次站点。针对管理员用户,还提供公交统计分析,线路地图功能,并通过可视化图表和地图进行显示。除主要功能以外本系统还附带发布寻物启示与失物招领模块,方便用户。 本系统目标是方便市民进行公交信息查询,并且要做到信息不滞后,其主要思想是做到系统管理的人性化,数据处理的可靠性,可维护性,以及程序的健壮性。系统提供了用户留言的功能,根据用户提供的留言信息或提出的建议提高公交公司的服务质量。基于J2EE的城市公交查询系统,它采用B/S模式。该系统不仅可以用于公交公司管理系统中,也可以单独作为公交管理系统的一个模块存在,并可以制作成城市公交信息系统查询网,放置于城市的主要场所。这样不仅可以体现出一个城市的智能公交系统的水平,更显示出城市的数字化,信息化水平。

根据上述设计思想进行分析,确定了系统的基本框架,如图4-1所示。

2、技术框架

运行系统:windows

编程语言:java

系统架构:B/S

后端框框:SSH(Struts+Spring+Hibernate)

前端框架:JSP+JavaScript+Css

前后端分离:否

数据库:MySQL

Maven项目:否

数据库表数量:6

运行环境:JDK8+MySQL5.7+Maven3.6+idea+Tomcat8.5

3、演示视频

基于SSH的公交查询系统

4、项目截图

5、项目截图

6、代码示例

@Component("indexDao")
public class IndexDao extends HibernateDaoSupport {
	int n = 0;
	ArrayList arrBusNameOne = new ArrayList(); // 需要倒车一,二次的方法用
	ArrayList arrBusNameTwo = new ArrayList(); // 需要倒车一,二次的方法用
	ArrayList arrMiddleAll = new ArrayList(); // 需要倒车一次的方法用
	ArrayList arrTwoMiddleAll = new ArrayList(); // 需要倒车二次的方法用

	// /**
	// * 首页
	// */
	// public List getProductsList() {
	// String hql = "from ProductsEntity";
	// return this.getHibernateTemplate().find(hql);
	// }
	//
	// /**
	// * 网站公告
	// *
	// * @return
	// */
	// public List getNewsList() {
	// String hql = "from NotesEntity where type=1";//news
	// return this.getHibernateTemplate().find(hql);
	// }
	//
	// public List getWarningList() {
	// String hql = "from NotesEntity where type=2";//公告
	// return this.getHibernateTemplate().find(hql);
	// }
	// /**
	// * 显示网站公告内容
	// *
	// * @param id
	// * @return
	// */
	// public NotesEntity getNotesView(Long id) {
	// return (NotesEntity) this.getHibernateTemplate().get(NotesEntity.class,
	// id);
	// }

	/**
	 * 注册
	 * 
	 * @param request
	 * @return
	 */
	public String registAdd(HttpServletRequest request) {
		try {

			DateUtil du = new DateUtil();
			RegisterEntity aa = new RegisterEntity();
			aa.setRname(getNotNull(request.getParameter("username")));
			aa.setLoginname(getNotNull(request.getParameter("loginname")));
			aa.setPassword(getNotNull(request.getParameter("password")));
			aa.setTel(getNotNull(request.getParameter("tel")));
			aa.setEmail(getNotNull(request.getParameter("email")));
			aa.setAddress(getNotNull(request.getParameter("address")));
			aa.setContents(getNotNull(request.getParameter("contents")));

			this.getHibernateTemplate().save(aa);
			return "true";
		} catch (Exception e) {
			e.printStackTrace();
			return "false";
		}
	}

	/**
	 * 登录
	 * 
	 * @param request
	 * @return
	 */
	public LoginForm loginChange(HttpServletRequest request) {
		String hql = null;
		LoginForm lf = new LoginForm();
		if ("admin".equals(request.getParameter("gettype"))) {

			hql = "from AdminsEntity where loginname = '"
					+ request.getParameter("username") + "' and password = '"
					+ request.getParameter("password") + "'";

			List list = this.getHibernateTemplate().find(hql);
			if (list != null && list.size() == 1) {
				AdminsEntity ue = (AdminsEntity) list.get(0);

				lf.setId(ue.getId().toString());
				lf.setLoginname(ue.getLoginname());
				lf.setUsername(ue.getAdminname());
				lf.setLogo(request.getParameter("gettype"));
				return lf;
			} else
				return null;

		} else {

			hql = "from RegisterEntity where loginname = '"
					+ request.getParameter("username") + "' and password = '"
					+ request.getParameter("password") + "'";

			List list = this.getHibernateTemplate().find(hql);
			if (list != null && list.size() == 1) {
				RegisterEntity ue = (RegisterEntity) list.get(0);

				lf.setId(ue.getId().toString());
				lf.setLoginname(ue.getLoginname());
				lf.setUsername(ue.getRname());
				lf.setLogo(request.getParameter("gettype"));
				return lf;
			} else
				return null;
		}
	}

	/**
	 * 注册用户管理:查看信息
	 * 
	 * @param request
	 * @return
	 */
	public List registerList(HttpServletRequest request) {

		String hql = null;
		LoginForm lf = (LoginForm) request.getSession().getAttribute(
				"loginmessage");
		String type = lf.getLogo();

		if ("enterprise".equals(type)) {
			hql = "from RegisterEntity  where id = " + lf.getId();
		} else {
			hql = "from RegisterEntity";
		}

		return this.getHibernateTemplate().find(hql);
	}

	/**
	 * 注册用户管理:查看单个信息
	 * 
	 * @param id
	 * @return
	 */
	public RegisterEntity registerShow(HttpServletRequest request) {
		return (RegisterEntity) this.getHibernateTemplate().get(
				RegisterEntity.class, Long.valueOf(request.getParameter("id")));
	}

	/**
	 * 注册用户管理:修改信息后保存到数据库
	 * 
	 * @param request
	 * @return
	 */
	public String registerUpdDB(HttpServletRequest request) {
		try {

			RegisterEntity aa = this.getHibernateTemplate().get(
					RegisterEntity.class,
					Long.valueOf(request.getParameter("id")));

			DateUtil du = new DateUtil();

			aa.setRname(getNotNull(request.getParameter("username")));
			aa.setLoginname(getNotNull(request.getParameter("loginname")));

			aa.setPassword(getNotNull(request.getParameter("password")));
			aa.setTel(getNotNull(request.getParameter("tel")));
			aa.setEmail(getNotNull(request.getParameter("email")));
			aa.setAddress(getNotNull(request.getParameter("address")));

			aa.setContents(getNotNull(request.getParameter("contents")));

			this.getHibernateTemplate().update(aa);
			return "true";
		} catch (Exception e) {
			e.printStackTrace();
			return "false";
		}
	}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
城市公交系统数据库设计 摘要:造成我国交通拥挤问题的首要原因是城市交通基础设施的建设远远落后于城市 交通需求的增长,大力发展公共交通是解决城市交通拥挤问题的首选措施。我国公共交 通系统存在的一个普遍问题,就是乘客出行换乘比率高,公交查询系统不健全。针对这 一问题,以德州为例,对基于SuperMap面向对象的空间数据模型,结合SQL server 2005数据库技术,进行了德州市公交系统数据库设计,为公交车路线决策提供数据支 持。 关键字:数据库;数据模型;公交系统;设计   1研究现状 我国公交系统的发展起步较晚,我国城市公交查询系统的发展处于一个落后的水平, 广大乘客可以获得信息的方式很少,公交信息的完整性和准确性得不到保证,而且还没 有专门的机构负责信息的发布和管理。我国公交查询系统的现状:乘客获得信息很少; 乘客获得信息困难;乘客获得的信息准确性得不到保证;公交信息系统与网络的结合还 是低层次的。 2公交系统数据库设计 2.1系统数据库设计目标 研究、设计和建立一个城市公交系统数据库,实现对城市公交客运线路信息的管理维 护和统计分析,并为城市公交公司的经营和城市交通地理信息系统提供支持。数据库设 计的目标主要包括:满足用户要求;良好的数据库功能;精确的模拟现实世界;能被某 个DBMS接受。 2.2数据库设计 该系统采用SuperMap Objects提供的SDB引擎进行空间数据库的构建与管理。SuperMap Objects的SDB引擎采用的结构化存储技术中的OLE复合文件实现多数据集和异构数据集的 一体化存储功能。1个SDB数据源由2个文件组成,扩展名称分别为SDB和SDD。1个SDB数据 源可以存储多个数据集,不同类型数据集也可以保存在同一个数据源中[1]。该数据模型 是采用面向数据模型;并基于矢量数据模型,将德州市地理数据抽象为包含空间信息的 要素类和不包含空间信息的对象类(要素属性)[2]。如:公交站点设计成点要素、公交 线路和道路设计成线要素,建筑物和车站等设计成面要素。 由于用户对数据库的操作主要有插入数据、修改数据、删除数据和查询数据等,其中 ,最频繁的操作是查询数据[3]。现在根据系统需要,尤其是数据查询需要,我们首先应 该录入一些基础数据:公交线路网络数据集;站点信息数据集;公汽线路数据集;另外 ,还需要有站点和公交线路拓扑关系的属性数据集。根据以上分析,系统设计中共有四 个表:公汽信息数据表、公汽线路数据表、公汽站点数据表和N:M关系表。下面列出各 个表的详细结构。 2.2.1公交信息数据表 公交信息数据表的个数和公汽的路数是对应的,这样设计的目的便于公汽增加或删除 。其中包含三个字段:StepNo纪录编号,作为公汽信息表的主键,另一作用是标识公汽 信息依次经过的空间点的顺序,以确定公汽进行的路线;DepotNo公汽停靠的站点编号, 为外键,对应Depot表的主键SmID;TopolineNo公汽所经过的公汽线路的网络图网络边编 号,以记录公汽线路信息,为外键,对应Busway的主键SmID。(如表1) 表1 公交信息数据表(Businf) 2.2.2公汽线路数据表 公汽线路数据表是公汽线路网络图对应的主表,主要字段为SmID。(如表2) 表2 公汽线路数据表(Busway) 2.2.3站点数据集对应的数据表 站点数据集对应的数据表重要的字段为SmID唯一标示站点字段。(如表3) 表3 站点数据表(BusTop) 2.2.4 N:M关系表 BusLAP N:M关系表,包含字段为:DepotNo(站点编号)和BusNo(公汽编号)、两个字段,一起 作为他的主键,以此表示公汽和站点的关系。其中DepotNo为外键,对应Depot表主键Sm ID。(如表4) 表4 站点公汽关系表(BusLAP) 通过上述对德州市公交信息系统数据库的设计过程,已经为用户对数据可进行操作打 下了坚实基础,以便能更好的为公交公司和政府交通机关管理决策服务。 2.3公交系统空间数据库的建立 SuperMap Objects采用分层的方式来组织与管理地理空间数据。每一个图层都是一定空间范围内具 有相同属性信息的同类地理空间实体的集合。一是公交站点数据集,系统假定公交车经 过站点即停靠,现实生活中难免存在某些公交线路经过但不停靠的站点,因而,系统也 提供了公交站点的人工更新。二是公交线路数据集,基于系统所采用的地理底图,并根 据事先通过社会调查所得公交线路的数据资料,设计公交线路数据集。三是公交网络数 据集,数据集包括所有公交线路的公汽线路的公汽线路网络图图层对应的网络数据集。 四是背景数据集,背景数据集中添加了学校、新村小区、街道等,为增加地图显示的视 觉效果,铁路线、河流与湖泊面,学校名称、河流与湖泊名称、街道名称等注记也编辑

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

java源码集合

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值