一、源碼特點
? 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
四 系統實現