《酒店预订系统(12页).doc》由会员分享,可在线阅读,更多相关《酒店预订系统(12页).doc(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-酒店预订系统-第 8 页摘 要针对酒店管理系统的开发设计,采用 J2EE开发技术,开发使用 Mysql 数据库。JAVA是面向网络的编程语言的,可以在任何一个系统浏览器下运行,现在我们采用J2EE 企业级项目开发技术,开发具有预订客房,查询,退房以及房间管理等功能酒店管理系统更好的对酒店进行管理维护。基于web浏览器,使用J2EE( JS,JSP ,hibernate)技术结合Mysql数据库,对酒店预订业务,和房间管理业务进行分析、设计,实现了登陆注册、预订,客户管理,房间管理等功能,给客户良好的UI体验。基于技术:J2EE组件,它和“标准的” Java类的不同点在于:它被装配在一个J2E
2、E应用中,具有固定的格式并遵守J2EE规范,由J2EE服务器对其进行管理。J2EE规范是这样定义J2EE组件的:客户端应用程序和applet是运行在客户端的组件;Java Servlet和Java Server Pages (JSP) 是运行在服务器端的Web组件;关键字:酒店管理系统;J2EE;Mysql 数据库目录1绪论 .12课设内容.13. 酒店预订系统的原理及技术.14.实现结果及核心代吗 .25基于TCP和UDP套接字编程.96收获心得.77参考文献.111. 绪论随着人们日益增长的物质文化需求,传统的酒店电话预定模式已经不能够满足当今的网络化信息时代,人们迫切需要更好地用户体验和
3、服务,更加便利的预定方式,所以基友Web酒店预订,由此而生。2.课设内容自选课题酒店预订系统。(1) 酒店房间信息管理;(2) 客人查询酒店信息以及预订功能。公共课题基于Socket的C/S结构程序设计。(1) 编写基于TCP协议的C/S程序;(2) 编写基于UDP 协议的C/S程序3.酒店预订系统的原理及技术本次课程设计,我主要侧重于酒店房间信息管理的实现!1. 房间信息管理的原理通过Web页面传入的操作数据,再通过各个控制器对页面传入的数据进行处理,转化为对数据库的表的操作,是数据库的各个表中的数据得到更新,进而载通过控制器,从数据库中获取信息,反馈到Web页面上来的方法,实现对酒店房间信
4、息的更新。2. 房间信息管理模块的功能及实现技术房间信息管理模块的实现,遵循MVC的软件开发思路,实现以下功能:(1) M业务逻辑层:业务逻辑层主要实现的功能分为两部分:一是对数据库的表进行映射,二是通过JDBC进行数据库的连接通道的构建,建立数据交互机制。而我这部分用到的实现技术是hibernate。它是一个开放源是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。它使程序员对数据库的
5、表的操作,变成了对java类的操作,使用HQL语言先对实体包中的映射表的类进行表的构建,主外键设置,增删改查,事物的级联更新,级联删除等等。通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件。由hibernate.cfg.xml读取解析映射信息。进行持久化操作(HQL语言的编写)完成对类表的操作,然后映射到数据库的表中。总体而言,hibernate是一种JDBC的轻量级封装,没有入侵性,不涉及对接口的编程,而且移植性很好,适合客户机,以及web工程对数据库的操作 (2)mysql数据库:MySQL(发音为my ess cue el,
6、不是my sequel)是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言-结构化查询语言(SQL)进行数据库管理。(3)V视图层:界面的实现,本次界面我用到了jQueryeasyui技术,它是一种基于jQuery的用户界面插件集合。是一个新的JavaScript库,他能极大的节省前台网页开发时间,利用较少的代码实现大量的功能。(4)C控制器:利用Java Servelt编写的操作代码,主要实施对界面操作数据的处理。这部分内容,并非我的侧重点,他主要依靠JSP的页面技术,来实现顾客登录页面,注册页面,预订页面等等。4. 实现结果与核心代码Hib
7、ernate的hibernate.cfg.xml完成对数据库的连接,类表的映射org.hibernate.dialect.MySQLDialectcom.mysql.jdbc.Driverjdbc:mysql:/127.0.0.1/mysqldbrootroottruetrue这是Users.java代码(类表)package com.cissst.entity;public class Users /名称、密码、性别、电子邮件、电话、QQ、地址、备注private Integer id;/private String username;private String password;priv
8、ate String sex;private String email;private String telphone;private String QQ;private String address;public String getEmail() return email;public void setEmail(String email) this.email = email;public String getTelphone() return telphone;public void setTelphone(String telphone) this.telphone = telpho
9、ne;public String getQQ() return QQ;public void setQQ(String qQ) QQ = qQ;public String getAddress() return address;public void setAddress(String address) this.address = address;private String remark;public String getRemark() return remark;public void setRemark(String remark) this.remark = remark;publ
10、ic Integer getId() return id;public void setId(Integer id) this.id = id;public String getUsername() return username;public void setUsername(String username) this.username = username;public String getPassword() return password;public void setPassword(String password) this.password = password;public S
11、tring getSex() return sex;public void setSex(String sex) this.sex = sex;当运行程序后,控制台显示如下结果:图一控制台显示表的建立图二数据库中表的显示此时,数据库端出现了新表下来是前台的jqury-easyui代码window.history.forward(-1);$(function() $(#loginDialog).dialog(buttons:text:登陆,handler:function()$(#loginForm).form(submit,url:baseLoginServlet?m=login&+$(#lo
12、ginForm).serialize(), onSubmit:function()return $(#loginForm).form(validate);success:function(data)if(data=true)window.location.href=index.jsp;else if(data=false)$.messager.alert(信息提示,你输入的用户名称或者密码不正确,error);,text:注册,handler:function()var dataTree = text : 系统管理,iconCls : icon-menu,children : text : 用
13、户管理,iconCls : icon-menu,attributes : url : jsp/usersList.jsptext : 房间管理,iconCls : icon-menu,attributes : url : jsp/rolersList.jsp$(#tree).tree(data : dataTree,onClick : function(node) /打开一个选项卡布局面板,该函数还没定义openTabs(node.text, node.attributes.url, node.iconCls);/打开一个选项卡function openTabs(text, url, icon
14、) /选项卡面板/ $(#tabs).tabs()if ($(#tabs).tabs(exists, text) $(#tabs).tabs(select, text); else var myContext=;$(#tabs).tabs(add,title:text,content:myContext,closable:true,iconCls:icon用户名称用户密码欢迎登陆该系统运行结果如下图所示:图三管理模块的显示5. 基于TCP和UDP套接字编程设计这是UDP服务器端代码,将此段代码运行将开启UDP服务器;UDP(User Data Protocol,用户数据报协议)是与TCP相对应
15、的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去! package udp;import .*;import java.io.*;public class UDPServer public static void main(String arg) throws IOExceptionSuppressWarnings(resource)DatagramSocket serverSocker= new DatagramSocket(9876);byte receiveData =new byte1024;bytesendData=new byte1024;while(t
16、rue)DatagramPacket receivePacket =new DatagramPacket(receiveData, receiveData.length);serverSocker.receive(receivePacket);String sentence =new String(receivePacket.getData();InetAddress IPAddress=receivePacket.getAddress();int port =receivePacket.getPort();String capitalizedSentence= sentence.toUppe
17、rCase();sendData=capitalizedSentence.getBytes();DatagramPacket sendPacket=new DatagramPacket(sendData, sendData.length,IPAddress,port);serverSocker.send(sendPacket);再运行客户机端代码,按照提示输入即可得到以下显示;图四控制台UDPServer运行成功这是TCP服务器代码,运行后将开启TCP服务,在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。package tcp;import java.io.Buf
18、feredReader;import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStreamReader;import .ServerSocket;import .Socket;public class TCPServer SuppressWarnings(resource)public static void main(String args) throws IOException String clientSentence;String capitalizedSentence;/创建连接端
19、口号ServerSocket welcomeSocket =new ServerSocket(6789);while (true) /在welcomesocket 等待客户连接,并创建connectionsocketSocket connectionSocket =welcomeSocket.accept();/创建输入流从connectionsocket接收信息BufferedReader inFromClient= new BufferedReader(new InputStreamReader(connectionSocket.getInputStream();/创建输出流,通过conn
20、ectionSocket输出DataOutputStream outToClient=new DataOutputStream(connectionSocket.getOutputStream();/接收client的信息clientSentence =inFromClient.readLine();/转换为大写字符capitalizedSentence=clientSentence.toUpperCase()+n;/发送信息outToClient.writeBytes(capitalizedSentence);图五控制台TCPServer运行成功6.心得体会通过这次这次的课程设计,我们更深刻
21、的体会到了,做课程设计的难度,从中我们学习到了很多有关程序设计的知识,丰富了我们的学习生活,从本次课设中掌握到了很多面向对象的方法语言知识,同时再次感谢我们的老师的指点。通过本次实验,我可以很好的掌握类的应用,通过一个简单的类实现了该程序,并没有用到复杂的继承和虚基类,同时,定义的记录数据也很简单,没有用到数组结构,不足也就是不能记录用户的信息,不能把每个房间和用户对应起来,但是可以实现单纯的订房退房和房间信息变化的记录。最后,可以将每次结束时的信息保存在对应文件中,并在每次打开时读取上次的信息6. 参考文献1(美)库罗斯(Kurose,J.F),计算机网络自顶向下方法,机械工业出版社,北京,2008,122P.Alibitz and C.Liu,DNS and BIND,OReilly&Associates,Petaluma,CA,19933张公忠,现代网络技术教程,电子工业出版社,2004,14吴功宜,计算机网络教程,电子工业出版社,2003,75高阳,网络与电子商务,湖南人民出版社,2001,1考核问题及解答问题1:什么事UDP和TCP 在服务器端的区别:答:UDP没有建立等待连接,不用指定端口号,及没有等待连接代码;问题2:代码中ServerSocket是什么意思?功能是什么?答:ServerSocket意思是套接字服务;功能,建立开始连接,为第一次握手做准备。
限制150内