酒店管理系统房间管理模块的开发.docx
《酒店管理系统房间管理模块的开发.docx》由会员分享,可在线阅读,更多相关《酒店管理系统房间管理模块的开发.docx(29页珍藏版)》请在冰豆网上搜索。
酒店管理系统房间管理模块的开发
酒店管理系统房间管理模块
第一章
第一节JAVA
一java的简介
Java,首先是Java的发展历史与Java语言介绍,其次依序是JavaApplet和HotJava的简单介绍。
下面以问答的方式来说明Java的发展历史与其背景(下列内容整理自JavaFAQlistandTutorial和TheJavaLanguage:
AWhitePaper,读者若欲深入了解,请自行参阅原文):
Java何时开始发展?
最早大概可追溯至1991年四月份,Sun的绿色计划(GreenProject)开始着手于发展消费性电子产品(ConsumerElectronics),所使用的语言是C、C++、及Oak(为Java语言的前身),后因语言本身和市场的问题,使得消费性电子产品的发展无法达到当初预期的目标,再加上网络的兴起,绿色计划也因此而改变发展的方向,这已是1994年了。
为何称之为Java?
(Why)"Java"是美国SUN计算机公司Java发展小组历经无数次的激烈讨论之后才被选择出。
生动(Liveliness)、动画(Animation)、速度(Speed)、交互性(Interactivity)为当初选择名字时所欲表达出的特色。
"Java"是在无数的建议中脱颖而出的,而"Java"不是由几个单字的首字所组成,而是从许多程序设计师钟爱的热腾腾、香浓咖啡中产生灵感的。
谁开发了Java?
(Who)Java是美国SUN计算机公司Java发展小组开发的,早期的成员(绿色工程)是PatrickNaughton,JamesGosling,&MikeSheridan,而现在大家较为熟悉的成员是JamesGosling。
如何才能看到Java的效果?
(HowDoI)
首先您需要有含有Java解释器的浏览器(Browser),例如:
Netscpae公司的NetscapeNavigator2.0以上或是Sun公司的HotJava浏览器,对个人计算机使用者而言,操作系统需是Windows95或是WindowsNT。
Java是因为撰写C++语言程序时的困难而研制开的,起先,只是一个消费性电子产品大计划中的一部份,C++语言是当初被考虑采用的,但从一开始的编译问题一直到最后的一连串问题迫使得放弃C++语言,而有Java语言的产生。
Sun是要Java成为一个简单(Simple)、面向对象的(ObjectOriented)、分布式的(Distributed)、解释的(Interpreted)、健壮的(Robust)、安全的(Secure)、结构中立的(ArchitectureNeutral)、可移植的(Portable)、高效能的(HighPerformance)、多线程的(Multithreaded)、动态的(Dynamic)的程序语言(摘译自TheJavaLanguage:
AWhitePaper,1995)。
在Sun的Java语言白皮书中明白地说明上述Java语言的技巧。
若以木工为比喻,一个面向对象的木工,他(她)最主要的重点是即将要做的木椅子,其次才是所需要的工具;反之;一个以非面向对象的木工,他(她)所关心的只是工具。
最近的即插即用(PlugandPlay)亦是面向对象设计的重点。
分布式的(Distributed):
Java有一个很周全的程薪录JAVA介绍。
二java的发展
『Java』从1995年的暑假开始在计算机业界就受到了高度注意,特别是在Internet和多媒体(Multimedia)相关产品类方面。
Java为何有如此这么大的魅力?
人作如此的比喻:
Java在全球资讯网(WorldWideWeb,WWW)地位就如同电子表格(Spreadsheet)与个人计算机TTP和FTP等TCP/IP通讯协定相配合。
Java应用程序(Applications)能在网路上开启及连结使用物件,就如同透过URLs连结使用一个本地文件系统(LocalFileSystem)。
健壮的(Robust):
由Java所编写出的程序能在多种情况下执行而具有其稳定性。
Java与C/C++最大不同点是Java有一个指针模型(PointerModel)来排除内存被覆盖(OverwritingMemory)和毁损数据(CorruptingData)的可能性。
安全的(Secure):
Java是被设计用于网络及分布式的环境中,安全性自必是一个很重要的考虑。
Java拥有数个阶层的互锁(Interlocking)保护措施,能有效地防止病毒的侵入和破坏行为的发生。
多线程的(Multithreaded):
Java语言具有多线程的功能,这对于交互回应能力及即时执行行为是有帮助的。
动态的(Dynamic):
Java比C或C++语言更具有动态性,更能适应时刻在变的环境,Java不会因程序库的更新,而必须重新编译程序。
三java特点
1."Java是一种编写WebPages的一种语言,就如同HTML和VRML一样"事实上,Java并不像是HTML此一类的描述语言(DescriptionLanguage),而是一种编程语言(ProgrammingLanguage)。
描述语言标明内容和位置,而编程语言描述一种产生结果的过程。
2."Java语言容易学习和使用,不像C、C++和其它程序语言"
Java是一种编程语言。
Java容易学吗?
Java或许是比C或C++容易学,但仍是一种编程语言,而不是一种描述语言。
3."Java码是可移植的,但C及C++不是"
Java原代码(SourceCode)是比C语言来得可移植一点,差别在于Java的目标码。
Java码在一种机器上进行编译,而能在所有的机器上执行,只要那部机器上有Java解释器。
4."Java能被拓展而在机器上执行任何事情"
理论上,JavaApplet(Java小应用程序)能做任何事情,如模拟3DVRML模型、播放电影、产生音频....等。
但事实上,一个小应用程序(Applet)仅能在那一页上被执行,而无法在那一页之外执行。
同时,Java亦受限于程序库的功能。
5."Java是适合于建立大型的应用程序"
如果Java适合于大型程序,则Java就不适合应用于Web浏览器了。
第一个商业性的JavaApplets(Applix'sJava-BasedSpreadsheet)并不是全然使用Java,它只使用Java作为用户接口,而所有的处理工作,是用CGI码。
6."Java是解释执行的,Basic是解释执行的,因此Java=Basic"
虽然Java的确是使用解释器,但事实上,Java则与C或C++等完全编译语言较为相近,但与Basic或APL等完全解译语言较不相近。
7."Java删除了CGI命令稿(Scripts)和程序的需求"
JavaApplets将会取代部份CGI的用途。
在有些情况,JavaApplets能够取代一些服务器端代码(Server-SideCode),但大多数的情况,基于安全性理由或是效能的考虑,Java仍无法全然取代CGIScripts。
8."Netscape'sJavaScript是与Java有相关"
除了名称之外,Java和JavaScript是有一点点相关。
JavaScript是一种命令稿语言,是可以在HTML页中使用。
Java码并未出现在HTML中,而在HTML中通过一个链结来链结编译码组。
Java和JavaScript之间的关系就如同C语言和CShell一般。
第二节Jbuilder
JBuilder是Borland公司开发的针对java的开发工具,使用JBuilder将可以快速,有效的开发各类java应用,它使用的JDK与sun公司标准的JDK不同,它经过了较多的修改,以便开发人员能够像开发Delphi应用那样开发java应用。
JBuilder的核心有一部分采用了VCL技术,使得程序的条理非常清晰,就算是初学者,也能完整的看完整个代码。
JBuilder另一个特点是简化了团队合作,它采用的互联网工作室技术使不同地区,甚至不同国家的人联合开发一个项目成为了可能。
一Jbuilder的特点
简单介绍一下Jbuilder的特点:
1Jbuilder支持最新的Java技术,包括Applets、JSP/Servlets、JavaBean以及EJB(EnterpriseJavaBeans)的应用。
2用户可以自动地生成基于后端数据库表的EJBJava类,Jbuilder同时还简化了EJB的自动部署功能.此外它还支持CORBA,相应的向导程序有助于用户全面地管理IDL(分布应用程序所必需的接口定义语言InterfaceDefinitionLanguage)和控制远程对象。
3Jbuilder支持各种应用服务器。
Jbuilder与InpriseApplicationServer紧密集成,同时支持WebLogicServer,支持EJB1.1和EJB2.0,可以快速开发J2EE的电子商务应用。
4Jbuilder能用Servlet和JSP开发和调试动态Web应用。
4利用Jbuilder可创建(没有专有代码和标记)纯Java2应用。
由于Jbuilder是用纯Java语言编写的,其代码不含任何专属代码和标记,它支持最新的Java标准。
4Jbuilder拥有专业化的图形调试界面,支持远程调试和多线程调试,调试器支持各种JDK版本,包括J2ME/J2SE/J2EE。
JBuilder环境开发程序方便,它是纯的Java开发环境,适合企业的J2EE开发;缺点是往往一开始人们难于把握整个程序各部分之间的关系,对机器的硬件要求较高,比较吃内存,这时运行速度显得较慢。
2006年Jbuilder被划归Borland全资子公司CodeGear。
2008年5月7日Borland以2300万美元卖掉CodeGear开发工具部门,买家是Embarcadero公司。
第三节MySQL
一MySQL的简介
MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司。
在2008年1月16号被Sun公司收购。
而2009年,SUN又被Oracal收购.对于Mysql的前途,没有任何人抱乐观的态度.目前MySQL被广泛地应用在Internet上的中小型网站中。
由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
MySQL的官方网站的网址是:
二MySQL的特性
1.使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性
2.支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统
3.为多种编程语言提供了API。
这些编程语言包括C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等
4.支持多线程,充分利用CPU资源
5.优化的SQL查询算法,有效地提高查询速度
6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名
7.提供TCP/IP、ODBC和JDBC等多种数据库连接途径
8.提供用于管理、检查、优化数据库操作的管理工具
9.可以处理拥有上千万条记录的大型数据库
三MySQL的应用
与其他的大型数据库例如Oracle、DB2、SQLServer等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQLCluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。
对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。
目前Internet上流行的网站构架方式是LAMP(Linux+Apache+MySQL+PHP),即使用Linux作为操作系统,Apache作为Web服务器,MySQL作为数据库,PHP作为服务器端脚本解释器。
由于这四个软件都是自由或开放源码软件(FLOSS),因此使用这种方式不用花一分钱就可以建立起一个稳定、免费的网站系统。
四MySQL最常用的应用架构
单点(Single),适合小规模应用
复制(Replication),适合中小规模应用
集群(Cluster),适合大规模应用
MySQL公司在同时开发两个版本的软件,4.1版以及5.0版。
4.1版本的代码已经发布并有望在8个月后公布最终代码。
而5.0版本的最后产品将在6个月后发布。
MySQL4.1版本中增加了不少新的性能,包括对主键的更高速度的缓存,对子查询的更好的支持,以及应网络约会网站所要求的,基于地理信息的查询。
其同步开发的5.0版本则把目标对准了企业用户,对于4.1版本中的所有新特性,5.0版本悉数收入囊中,并且独具以下特点:
对外键的良好支持;系统自动报错机制以及对存储过程的充分支持。
MYSQL-安装注意
1、如果是用MySQL+Apache,使用的又是FreeBSD网路操作系统的话,安装时候你应按注意到FreeBSD的版本问题,在FreeBSD的3.0以下版本来说,MySQLSource内含的MIT-pthread运行是正常的,但在这版本以上,你必须使用nativethreads,也就是加入一个with-named-thread-libs=-lc_r的选项。
2、如果在COMPILE过程中出了问题,请先检查你的gcc版本是否在2.81版本以上,gmake版本是否在3.75以上。
3、如果不是版本的问题,那可能是你的内存不足,请使用./configure--with-low-memory来加入。
4、如果要重新做你的configure,那么你可以键入rmconfig.cache和makeclean来清除记录。
5、把MySQL安装在/usr/local目录下,这是缺省值,您也可以按照你的需要设定你所安装的目录。
五MySQL的应用命令
[]中的内容为可选项
--创建数据库
mysql>createdatabase数据库名称
--创建表
mysql>createtable表名(
列的名字(id)类型(int(4))primarykey(定义主键)auto_increment(描述自增),
……,
);
--查看所有数据库
mysql>showdatabases数据库名称;
--使用某个数据库
mysql>usedatabase数据库名称;
--查看所使用数据库下所有的表
mysql>showtables;
--显示表的属性结构
mysql>desc表名;
--选择表中数据的显示
--*代表选择所有列,
mysql>select*from表名whereid=?
[andname=?
][orname=?
];
mysql>selectid,namefrom表名orderby某一列的名称desc(降序,asc为升序)
--删除表中的数据
mysql>deletefromtablewhereid=?
[orname=?
(andname=?
)];
--删除表
mysql>droptable;
--删除数据库
mysql>dropdatabase;
六MySQL的连接
一、连接MYSQL
格式:
mysql-h主机地址-u用户名-p用户密码
1、例1:
连接到本机上的MYSQL。
首先在打开DOS窗口,然后进入目录mysqlbin,再键入命令mysql-uroot-p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:
mysql>
2、例2:
连接到远程主机上的MYSQL。
假设远程主机的IP为:
110.110.110.110,用户名为root,密码为abcd123。
则键入以下命令:
mysql-h110.110.110.110-uroot-pabcd123
(注:
u与root可以不用加空格,其它也一样)
3、退出MYSQL命令:
exit(回车)
二、修改密码
格式:
mysqladmin-u用户名-p旧密码password新密码
1、例1:
给root加个密码ab12。
首先在DOS下进入目录mysqlbin,然后键入以下命令
mysqladmin-uroot-passwordab12
注:
因为开始时root没有密码,所以-p旧密码一项就可以省略了。
2、例2:
再将root的密码改为djg345。
mysqladmin-uroot-pab12passworddjg345
三、增加新用户
(注意:
和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符)
格式:
grantselecton数据库.*to用户名@登录主机identifiedby“密码”
例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。
首先用以root用户连入MYSQL,然后键入以下命令:
grantselect,insert,update,deleteon*.*totest1@“%”Identifiedby“abc”;
下面来看看MYSQL中有关数据库方面的操作。
注意:
必须首先登录到MYSQL中,以下操作都是在MYSQL的提示符下进行的,而且每个命令以分号结束。
四、操作技巧
1、如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回车就可以了。
也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束标志就OK。
2、你可以使用光标上下键调出以前的命令。
但以前我用过的一个MYSQL旧版本不支持。
我现在用的是mysql-3.23.27-beta-win。
五、显示命令
1、显示数据库列表。
showdatabases;
刚开始时才两个数据库:
mysql和test。
mysql库很重要它里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。
2、显示库中的数据表:
usemysql;//打开库,学过FOXBASE的一定不会陌生吧
showtables;
3、显示数据表的结构:
describe表名;
4、建库:
select*from表名; createdatabase库名;
5、建表:
use库名;
createtable表名(字段设定列表);
6、删库和删表:
dropdatabase库名;
droptable表名;
7、将表中记录清空:
deletefrom表名;
8、显示表中的记录:
六、一个建库和建表以及插入数据的实例
dropdatabaseifexistsschool;//如果存在SCHOOL则删除
createdatabaseschool;//建立库SCHOOL
useschool;//打开库SCHOOL
createtableteacher//建立表TEACHER
(
idint(3)auto_incrementnotnullprimarykey,
namechar(10)notnull,
addressvarchar(50)default‘深圳',
yeardate
);//建表结束
//以下为插入字段
insertintoteachervalues('','glchengang',’深圳一中‘,'1976-10-10');
insertintoteachervalues('','jack',’深圳一中‘,'1975-12-23');
注:
在建表中:
(1)将ID设为长度为3的数字字段:
int(3)并让它每个记录自动加一:
auto_increment并不能为空:
notnull而且让他成为主字段primarykey。
(2)将NAME设为长度为10的字符字段。
(3)将ADDRESS设为长度50的字符字段,而且缺省值为深圳。
varchar和char有什么区别呢,只有等以后的文章再说了。
(4)将YEAR设为日期字段。
如果你在mysql提示符键入上面的命令也可以,但不方便调试。
你可以将以上命令原样写入一个文本文件中假设为school.sql,然后复制到c:
\下,并在DOS状态进入目录\mysql\bin,然后键入以下命令:
mysql-uroot-p密码\school.sql
如果成功,空出一行无任何显示;如有错误,会有提示。
(以上命令已经调试,你只要将//的注释去掉即可使用)。
七、将文本数据转到数据库中
1、文本数据应符合的格式:
字段数据之间用tab键隔开,null值用\n来代替.
2、数据传入命令loaddatalocalinfile“文件名”intotable表名;
注意:
你最好将文件复制到\mysql\bin目录下,并且要先用use命令打表所在的库。
八、备份数据库:
(命令在DOS的\mysql\bin目录下执行)mysqldump--optschool>school.bbb。
第二章系统的拓扑结构
第三章系统具体功能的实现
第一节界面的介绍
本项目开发的是酒店管理系统,实现业务有开房,消费,退房以及修改密码和常用的附带功能。
本项目的开发语言是JAVA语言,使用开发软件jbuilder和eclipse软件,后台使用的是mysql数据库。
在jbuilder和eclipse中分为三层结构,分别是界面层,实体层,连接层等。
主要界面有登陆界面:
登陆界面就是管理人员在使用这个程序之前必须输入用户名和密码才能使用,如果用户名和密码输入不正确将会显示用户名或密码不正确,请重新输入。
如果用户名和密码正确,则跳入第二个叶面,就是管理系统界面,主要代码如下
publicvoiddenglu_actionPerformed(ActionEvente){
if(yonghuming.getText().equals("")){
JOptionPane.showMessageDialog(null,"请输入用户");
return;
}
//Stringmim=n