1、项目介绍
本系统是基于J2EE的公交查询系统,其中包括了公交查询系统的基本功能,并提供了用户留言的功能,方便根据用户提供的留言信息或是提出的建议对系统进行修改和完善,并提供了管理员用户后台维护公交信息的功能,做到能够实时添加和删除公交车次站点。针对管理员用户,还提供公交统计分析,线路地图功能,并通过可视化图表和地图进行显示。除主要功能以外本系统还附带发布寻物启示与失物招领模块,方便用户。 本系统目标是方便市民进行公交信息查询,并且要做到信息不滞后,其主要思想是做到系统管理的人性化,数据处理的可靠性,可维护性,以及程序的健壮性。系统提供了用户留言的功能,根据用户提供的留言信息或提出的建议提高公交公司的服务质量。基于J2EE的城市公交查询系统,它采用B/S模式。该系统不仅可以用于公交公司管理系统中,也可以单独作为公交管理系统的一个模块存在,并可以制作成城市公交信息系统查询网,放置于城市的主要场所。这样不仅可以体现出一个城市的智能公交系统的水平,更显示出城市的数字化,信息化水平。
根据上述设计思想进行分析,确定了系统的基本框架,如图4-1所示。
![](https://img-blog.csdnimg.cn/img_convert/d9e7c27d862545f7f2a291da36510f33.png)
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、项目截图
![](https://img-blog.csdnimg.cn/img_convert/ed058a9e6a09b7e591473d02f5ddf409.png)
![](https://img-blog.csdnimg.cn/img_convert/f879ee22009f1048b458a5fb8a689291.png)
![](https://img-blog.csdnimg.cn/img_convert/6ceff02e20b3d345815083e6f5367a92.png)
![](https://img-blog.csdnimg.cn/img_convert/3108a3391cf920fd7175796841fc02d0.png)
![](https://img-blog.csdnimg.cn/img_convert/45c3812b0e7b5f3e4ff9b184d7a378a6.png)
![](https://img-blog.csdnimg.cn/img_convert/a778d5dffecf165803d0e7e4a4aec185.png)
![](https://img-blog.csdnimg.cn/img_convert/bca449d08cfcfb246fca2d53066bc77b.png)
![](https://img-blog.csdnimg.cn/img_convert/93f8d7fff06beaf8c232040758b99459.png)
![](https://img-blog.csdnimg.cn/img_convert/c6cff20fdca72dfc6e0b55d9b0d298c6.png)
![](https://img-blog.csdnimg.cn/img_convert/6efe9d756b75bc513a6aacc01e8db880.png)
![](https://img-blog.csdnimg.cn/img_convert/ab071dfcc9d7dfbcddbc959c2a4bfb9d.png)
![](https://img-blog.csdnimg.cn/img_convert/bf10fdde5e18d12eb56b550886a361c4.png)
![](https://img-blog.csdnimg.cn/img_convert/a2e417bf6aa81b617b8cc51baae8d4f4.png)
![](https://img-blog.csdnimg.cn/img_convert/e324631d296f8ca6c330e728a5f31ac2.png)
![](https://img-blog.csdnimg.cn/img_convert/eb8428a7aa9811c29c95de2dd977301a.png)
![](https://img-blog.csdnimg.cn/img_convert/241b9ce8db707a07c1bde7781d53b93e.png)
![](https://img-blog.csdnimg.cn/img_convert/1f99b105cabb387775ace686f9b3a373.png)
![](https://img-blog.csdnimg.cn/img_convert/8fba94a119595bc7cedad1ada3c8b48b.png)
![](https://img-blog.csdnimg.cn/img_convert/b358a4dac58f51a310a8b1d124224349.png)
5、项目截图
![](https://img-blog.csdnimg.cn/img_convert/f55358bfdb1a53aa0438ede2adce3582.png)
![](https://img-blog.csdnimg.cn/img_convert/551be93dbc523cc78541fc30b26d128a.png)
![](https://img-blog.csdnimg.cn/img_convert/ee2ec610770a2d939c8bb43bbd316b96.png)
![](https://img-blog.csdnimg.cn/img_convert/a3dd2b78a2129da19f46c1cd58826f14.png)
![](https://img-blog.csdnimg.cn/img_convert/da543ab5044dd71ac110a50e703f5915.png)
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";
}
}