一、源码特点
SSM 个性化旅游管理系统是一套完善的信息系统,结合springMVC框架完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码和数据库
,系统主要采用B/S模式开发。
SSM个性化旅游系统2
前段主要技术 html.css jquery
后端主要技术 SSM
数据库 mysql
开发工具 eclipse JDK1.8 TOMCAT 8.5
二、功能介绍
本系统一共分为普通游客,会员、网站管理员、超级管理员等四个角色,不同的角色有不同的角色功能菜单,每个部分由其功能模块组成,每个模块之间虽然在表面上是相互独立的,但是
在对数据库的访问上是紧密相连的,各个模块访问的是同一个数据库,并且,个性化旅游网站建设的分析,系统主要功能包括:用户管理,景点管理、景点报名、酒店管理、旅游线路等功能
主要功能如下:
前台主要功能:
1、旅游线路:选择出发地和到达地,显示不同的旅游线路(参考携程,可以根据不同的分类筛选,比如跟团游,自由行,主题游,周边游等等),客户可以进行预订操作。
2、旅游景点:选择地点筛选景点,可以查看景点的图片和介绍等,需要购买门票的可以购买门票。
3、旅游新闻:显示旅游方面的新闻
4、留言板:用户可以发帖,主要是用户之间交流
5、个人中心:修改个人信息、密码等,个人订单,可以查看订单详情,再订单完成后对订单进行评价
后台主要功能:
(1)管理员管理:对管理员信息进行添加、删除、修改和查看
(2)用户管理:对用户信息进行添加、删除、修改和查看
(3)旅游新闻管理:对旅游新闻信息进行添加、删除、修改和查看
(4)线路类型管理:对线路类型信息进行添加、删除、修改和查看
(5)旅游线路管理:对旅游线路信息进行添加、删除、修改和查看
(6)线路预定管理:对线路预定信息进行添加、删除、修改和查看
(7)旅游景点管理:对旅游景点信息进行添加、删除、修改和查看
(8)景点门票管理:对景点门票信息进行删除、修改和查看
(9)酒店管理:对酒店信息进行添加、删除、修改和查看
(10)酒店预定管理:对酒店预定信息进行添加、删除、修改和查看
(11)帖子管理:对帖子信息进行删除、修改和查看
(12)回复管理:对回复信息进行删除、修改和查看
数据库设计
管理员表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | glyid | INTEGER | 11 | 是 | 管理员编号 |
2 | yhm | VARCHAR | 40 | 否 | 用户名 |
3 | mm | VARCHAR | 40 | 否 | 密码 |
4 | xm | VARCHAR | 40 | 否 | 姓名 |
5 | qx | VARCHAR | 40 | 否 | 权限 |
用户表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | yhid | INTEGER | 11 | 是 | 用户编号 |
2 | yhm | VARCHAR | 40 | 否 | 用户名 |
3 | mm | VARCHAR | 40 | 否 | 密码 |
4 | xm | VARCHAR | 40 | 否 | 姓名 |
5 | lxdh | VARCHAR | 40 | 否 | 联系电话 |
6 | lxdz | VARCHAR | 40 | 否 | 联系地址 |
旅游新闻
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | yhid | INTEGER | 11 | 是 | 用户编号 |
2 | yhm | VARCHAR | 40 | 否 | 用户名 |
3 | mm | VARCHAR | 40 | 否 | 密码 |
4 | xm | VARCHAR | 40 | 否 | 姓名 |
5 | lxdh | VARCHAR | 40 | 否 | 联系电话 |
6 | lxdz | VARCHAR | 40 | 否 | 联系地址 |
线路类型
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | xllxid | INTEGER | 11 | 是 | 线路类型编号 |
2 | lx | VARCHAR | 40 | 否 | 类型 |
旅游线路
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | lyxlid | INTEGER | 11 | 是 | 旅游线路编号 |
2 | xlmc | VARCHAR | 40 | 否 | 线路名称 |
3 | lx | VARCHAR | 40 | 否 | 类型 |
4 | js | VARCHAR | 40 | 否 | 介绍 |
5 | tp | VARCHAR | 40 | 否 | 图片 |
6 | fbsj | VARCHAR | 40 | 否 | 发布时间 |
7 | jg | VARCHAR | 40 | 否 | 价格 |
线路预定
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | xlydid | INTEGER | 11 | 是 | 线路预定编号 |
2 | xl | VARCHAR | 40 | 否 | 线路 |
3 | dh | VARCHAR | 40 | 否 | 单号 |
4 | sm | VARCHAR | 40 | 否 | 说明 |
5 | yh | VARCHAR | 40 | 否 | 用户 |
6 | ydsj | VARCHAR | 40 | 否 | 预定时间 |
7 | zt | VARCHAR | 40 | 否 | 状态 |
8 | pj | VARCHAR | 40 | 否 | 评价 |
旅游景点
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | lyjdid | INTEGER | 11 | 是 | 旅游景点编号 |
2 | jdmc | VARCHAR | 40 | 否 | 景点名称 |
3 | js | VARCHAR | 40 | 否 | 介绍 |
4 | tp | VARCHAR | 40 | 否 | 图片 |
5 | zb | VARCHAR | 40 | 否 | 周边 |
6 | mpjg | VARCHAR | 40 | 否 | 门票价格 |
控制层设计
@RequestMapping(value="/add")public String add(jdyd jdyd,HttpServletRequest request){Map<String,Object> map= new HashMap<String,Object>();//String name=(String)request.getParameter("name");map.put("jdydid", jdyd.getJdydid());//酒店预定编号map.put("jd", jdyd.getJd());//酒店map.put("dh", jdyd.getDh());//单号map.put("bt", jdyd.getBt());//标题map.put("sm", jdyd.getSm());//说明map.put("ydsj", jdyd.getYdsj());//预定时间map.put("yh", jdyd.getYh());//用户map.put("zt", jdyd.getZt());//状态map.put("pj", jdyd.getPj());//评价String jdydid=(String)jdyd.getJdydid();//酒店预定编号String jd=(String)jdyd.getJd();//酒店String dh=(String)jdyd.getDh();//单号String bt=(String)jdyd.getBt();//标题String sm=(String)jdyd.getSm();//说明String ydsj=(String)jdyd.getYdsj();//预定时间String yh=(String)jdyd.getYh();//用户String zt=(String)jdyd.getZt();//状态String pj=(String)jdyd.getPj();//评价jdyddao.save(map);request.setAttribute("msg", "<script>alert('添加成功');</script>");System.out.println("addok");return "jdyd/jdydadd";}/**删除 * */@RequestMapping(value="/del")public String del(Integer id,HttpServletRequest request,Map<String,Object> map){// Map<String,Object> map= new HashMap<String,Object>();String a=(String)request.getParameter("keyid");id=Integer.parseInt(a);request.setAttribute("msg", "<script>alert('删除成功');</script>");jdyddao.del(id);return selectall(null,map,request);}/*** 修改jdyd信息*/@RequestMapping(value="/update")public String update(jdyd jdyd,HttpServletRequest request,Map<String,Object> map1){Map<String,Object> map= new HashMap<String,Object>();map.put("jdydid", jdyd.getJdydid());//酒店预定编号map.put("jd", jdyd.getJd());//酒店map.put("dh", jdyd.getDh());//单号map.put("bt", jdyd.getBt());//标题map.put("sm", jdyd.getSm());//说明map.put("ydsj", jdyd.getYdsj());//预定时间map.put("yh", jdyd.getYh());//用户map.put("zt", jdyd.getZt());//状态map.put("pj", jdyd.getPj());//评价String jdydid=(String)jdyd.getJdydid();//酒店预定编号String jd=(String)jdyd.getJd();//酒店String dh=(String)jdyd.getDh();//单号String bt=(String)jdyd.getBt();//标题String sm=(String)jdyd.getSm();//说明String ydsj=(String)jdyd.getYdsj();//预定时间String yh=(String)jdyd.getYh();//用户String zt=(String)jdyd.getZt();//状态String pj=(String)jdyd.getPj();//评价request.setAttribute("msg", "<script>alert('操作成功');</script>");jdyddao.update(map);return selectall(null,map1,request);}/*** 查询jdyd信息*/@RequestMapping(value="/modify")public String modify(Integer id,Map<String,Object> map,HttpServletRequest request){String keyid=(String)request.getParameter("keyid");List<Map<String,Object>> list= new ArrayList<Map<String,Object>>();list=jdyddao.select(Integer.parseInt(keyid));request.setAttribute("jdydid", list.get(0).get("jdydid"));//酒店预定编号request.setAttribute("jd", list.get(0).get("jd"));//酒店request.setAttribute("dh", list.get(0).get("dh"));//单号request.setAttribute("bt", list.get(0).get("bt"));//标题request.setAttribute("sm", list.get(0).get("sm"));//说明request.setAttribute("ydsj", list.get(0).get("ydsj"));//预定时间request.setAttribute("yh", list.get(0).get("yh"));//用户request.setAttribute("zt", list.get(0).get("zt"));//状态request.setAttribute("pj", list.get(0).get("pj"));//评价return "jdyd/jdydmodify";}
mybatis 配置
<insert id="insertjdmp" parameterType="java.util.Map">insert into jdmp(jd,gmsj,zt,sl,zjg,yh) values(#{jd},#{gmsj},#{zt},#{sl},#{zjg},#{yh})
</insert><delete id="deljdmp" parameterType="int">delete from jdmp where jdmpid=#{jdmpid}
</delete><update id="updatejdmp" parameterType="java.util.Map">
update jdmp set jd=#{jd},gmsj=#{gmsj},zt=#{zt},sl=#{sl},zjg=#{zjg},yh=#{yh} where jdmpid=#{jdmpid}
</update><!-- 查询返回的是 list<map> -->
<!-- resultType 就是返回查询结果的类型,而如果是resultMap=则返回的就是你定义的javabean -->
<select id="selectjdmp" parameterType="int" resultType="java.util.Map">select * from jdmp where jdmpid=#{jdmpid}
</select><!-- resultType 就是返回查询结果的类型,而如果是resultMap=则返回的就是你定义的javabean -->
<select id="selectall" parameterType="java.util.Map" resultType="java.util.Map">select * from jdmp where 1=1<if test=" null != jd and jd!=''" >and jd like concat(concat('%',#{jd}),'%')</if><if test=" null != gmsj and gmsj!=''" >and gmsj like concat(concat('%',#{gmsj}),'%')</if><if test=" null != zt and zt!=''" >and zt like concat(concat('%',#{zt}),'%')</if><if test=" null != sl and sl!=''" >and sl like concat(concat('%',#{sl}),'%')</if><if test=" null != zjg and zjg!=''" >and zjg like concat(concat('%',#{zjg}),'%')</if><if test=" null != yh and yh!=''" >and yh like concat(concat('%',#{yh}),'%')</if>
</select>
三、注意事项
1、管理员账号:admin密码:admin 数据库配置文件DBO.java
2、开发环境为eclipse开发,数据库为mysql,使用java语言开发。
3、数据库文件名是jspssmlvyou.sql 系统名称ssmlvyou
4、地址:http://127.0.0.1:8080/ssmlvyou/qt/index.jsp
四 系统实现