民航订票系统开发【毕业论文】

民航订票系统开发【毕业论文】

ID:472029

大小:1.18 MB

页数:52页

时间:2017-08-07

上传者:U-944
民航订票系统开发【毕业论文】_第1页
民航订票系统开发【毕业论文】_第2页
民航订票系统开发【毕业论文】_第3页
民航订票系统开发【毕业论文】_第4页
民航订票系统开发【毕业论文】_第5页
资源描述:

《民航订票系统开发【毕业论文】》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

本科毕业设计(20届)民航订票系统开发III 【摘要】民航订票系统是用于航空公司机票订购业务的一套管理系统,适用于柜台营业员对用户的各种订票等的业务操作,具有广泛的实用性。该系统是基于Java语言开发使用C/S模式实现的应用软件。经过一系列的需求分析,可分为前台和后台两个管理系统。使用Mysql作为核心数据库,Swing作为系统图形界面的开发工具,Socket机制用来消息的传输。它为用户提供了登陆、查询航班、退订机票、营业记录信息等功能,向管理员提供了对于航班信息的查询、修改等操作。经过测试,拥有友好交互界面,基本满足了用户的需求,完全可以实现在业务功能。【关键词】民航订票系统;java平台;C/S模式;交互界面【ABSTRACT】Civilaviationbookingsystemisasetofmanagementsystemsbeusedforairlineticketorderingbusiness,applicabletocountersalespersondoAvarietyofbookingandotherbusinessoperationstocustomers,andithasawiderangeofpractical.ThesystemisbasedontheJavalanguagedevelopmentanditisaapplicationsoftwareUsingtheC/Smodetoachieve.Afteraseriesofneedsanalysis,itcanbedividedintotwofrontandbackofficemanagementsystem.ItuseMysqlasthecoredatabase,GUIdevelopmentusingSwingtool,andSocketasaserver.Itprovidesuserswithalogin,checkflight,booktickets,businessrecordsfunctionsandprovidesadministratorwiththeflightinformationofthequery,modify,andotheroperations.Afterthetest,ithasafriendlyinterface,basicallymeettheneedsofusers,canachieveinabusinessfunction.【KEYWORDS】CivilAviationBookingSystem;javalanguage;C/SMode;Interface.III 目录1绪论61.1研究背景及现状61.2研究内容及课题意义61.3本文结构62开发语言及工具简介82.1Java语言概述82.2Java开发特点82.3Java常用工具包92.4Eclipse开发工具简介103需求分析和数据库设计123.1模块需求分析123.2具体功能需求分析133.3用例图设计143.4数据库设计164系统总体设计与代码编写184.1系统总体设计184.1.1Eclipse开发工具简介184.1.2系统流程设计184.1.3系统总体框架设计194.2整体界面设计204.2.1登陆界面204.2.2前台功能设计224.2.2.1.订购机票234.2.2.2.营业纪录244.2.2.3.一级结算264.2.2.4.二级结算274.2.3后台功能设计274.2.3.1.航班计划管理284.2.3.2.航线管理284.2.4服务器核心代码编写295数据测试与功能评估335.1测试环境335.2功能测试335.3安全测试345.4功能评估346总结366.1全文总结366.2未来展望367致谢38附录一:民航售票系统建表语句汇总40附录二:DAO接口具体方法汇总55III 1绪论1.1研究背景及现状年来,随着航空业的信息化发展,传统的机票订购方式已经无法达到目前民航电子商务的发展要求。为方便客户更快更有效的订购自己需要的机票,机票的电子化管理是一种必然的趋势。一个具有网络化的订票系统不仅可以处理大量的购票业务,同时节省内部管理上的成本,也更方便地为航空公司建立新的销售网店[1]。目前,国内的机票业务已基本实现了电子化管理,并不断有新的管理系统进行研发更新。它们利用网络通讯基础及先进的网络应用平台,建设立了一个安全、可靠、开放、高效的航班查询及机票预订的共享平台。用户可以借助计算机网络实现对航班的查询和机票的预订和退订,更加快速的,可靠地制定行程[2]。1.2研究内容及课题意义本设计的基本内容为开发一套国内机票营业柜员系统,该系统要求能通过分布在全国各主要城市的该航空公司的营业网点为顾客提供航班查询,购买机票,退票以及改签的服务。在此基础上实现系统个性化,使界面具有良好的交互性。系统的功能模块分为以下几部分:前台营业,后台管理。前台营业包括营业员登录登出,购票,退票,改签和查询营业记录等一系列业务操作。后台管理包括航班计划管理,航班管理,营业网点管理,营业员管理和权限管理等业务操作。本系统需实现的系统模块有:图形界面GUI模块,对象封装entity模块,server服务器模块和接口DAO模块。其中GUI模块包括前台营业与后台管理的业务操作界面。entity模块包括了航班计划,航班,机票等对象的封装。server模块包括服务器的启动,多线程设计等。DAO模块主要实现各种对象的接口设计与数据的包装。该系统是电子票务用于柜台操作的典型业务系统。实现了营业网店所需的必要业务操作,能够迅速地用户所接受和使用。1.3本文结构本文主要讲解介绍民航订票系统的整个开发流程与其各功能的具体实现。 第一章绪论简要介绍了系统开发的背景意义和发展现状,并概述了系统开发的主要内容和全文的结构安排。第二章主要介绍了与本系统开发相关的一些技术知识与开发环境,概述了JAVA语言的特点。另外还介绍了如何安装JDK和Eclipse等工具。第三章介绍了本系统的需求分析和功能描述,根据实际需求设计出用例图并详细制定了系统所需的数据实体类及数据库的建模。第四章对第三章给出的功能模块进行详细设计和编码设计,包括了DAO接口,事件处理,JDBC设计,按钮监听等。重点讲述了业务逻辑层的设计过程。第五章是对本系统主要功能的数据测试,记录详细测试结果并对各功能进行全面的评估总结。第六章总结全文,并介绍本系统设计过程中的主要问题及拟定的解决方案。 1开发语言及工具简介由于JAVA语言以其使用方便,功能强大,可移植平台等优点和Eclipse企业级工作平台很适合本课题的研究工作,因此作者选择Eclipse作为本课题的开发环境,用MySQL作为数据库来完成本课题的研究。1.1Java语言概述Java,是由SunMicrosystems公司于1995年5月推出的Java程序设计语言和Java平台的总称[7]。Java平台由Java虚拟机(JavaVirtualMachine)和Java应用编程接口(ApplicationProgrammingInterface、简称API)构成。由于目前所有的操作系统都已嵌入Java平台,所以只要Java程序编译过一次,就可以在运行在各种系统中。目前常用的Java平台版本是基于Java1.5。Java分为三个体系JavaSE(Java2PlatformStandardEdition,java平台标准版),JavaEE(Java2Platform,EnterpriseEdition,java平台企业版),JavaME(Java2PlatformMicroEdition,java平台微型版)。本系统是用JavaSE体系构建。JavaSE以前称为J2SE。它允许Java应用程序在在桌面、服务器、嵌入式环境及实时环境中开发和部署。JavaSE包含了各种开发所需的类包,包括支持JavaWeb服务开发的类[5]。1.2Java开发特点它是一种简单,面向对象,分布式,解释型,稳定,安全,结构中立,易移植,高性能,多线程的动态语言[7]。它的具体特点表现如下:1、它采用类C/C++的语法风格,摒弃了C++中容易引发程序错误的地方如指针和内存管理,并且提供了丰富的类库。所以它是一种简单的语言。2、它不支持类似C语言那样的面向过程的程序设计技术,Java支持静态和动态风格的代码继承及重用。所以Java语言是一个面向对象的。3、Java包括一个支持Http和Ftp等基于TCP/IP协议的子库。因此,Java应用程序可凭借URL打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。所以Java语言是分布式的。4、Java致力于检查程序在编译和运行时的错误,他操纵内存减少内存出错的可能性。Java还实现了真数组,避免了数据的覆盖。这些功能特征大大缩短了开发Java应用程序的周期。所以Java语言是健壮的。5、一方面,在Java语言里,像指针和释放内存等C++功能被删除,避免了非法内存的操作。另一方面,当Java用来创建预览起时,语言功能和浏览器本事提供的功能结合起来,使它更安全。所以 Java语言是安全的。6、为了建立Java作为网络的一个整体,Java将他的程序编译成一种结构中立的中间文件格式。只要有Java运行系统的机器都能执行这种中间代码,这种语言被设计在虚拟机上运行,有机器相关的运行调式器实现执行。所以Java语言体系是结构中立的。7、由于Java编译器产生的目标代码是针对一种并不存在的Java虚拟机,而不是某一实际CPU。Java虚拟机能掩盖不同Cpu之间的差点是J-code能运行于任何具有Java虚拟机的机器上。所以Java语言是可移植的。8、Java解释器能直接运行目标代码指令。链接程序通常比编译程序所需资源少,程序员可以花更多时间去创建源程序。所以Java语言是解释型的。9、Java可以运行时直接将目标代码翻译成机器指令,Java的运行速越来越接近于C++。所以Java是高性能的。10、多线程功能使得在一个程序里可同时执行多个小任务。更多的交互性能和实时控制性能是多线程带来的更大好处。11、Java的动态特性是其面向对象设计方法的发展,它允许程序动态地装入运行过程中所需要的类,这是C++语言进行面向对象程序设计所无法实现的。1.1Java常用工具包Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是Java企业应用编程接口(JavaEnterpriseAPIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。本节介绍本系统使用到的主要类包和工具包。Java.util包含集合框架、遗留的collection类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组、日期Date类、堆栈Stack类、向量Vector类等)[7]。Java.swing是一个用于开发Java应用程序用户界面的开发工具包。它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面[7]。Java.sql提供使用JavaTM编程语言访问并处理存储在数据源(通常是一个关系数据库)中的数据的API。此API包括一个框架,凭借此框架可以动态地安装不同驱动程序来访问不同数据源[7]。Java.io通过数据流、序列化和文件系统提供系统输入和输出。除非另有说明,否则向此包的任何类或接口中的构造方法或方法传递null参数时,都将抛出NullPointerException[7]。 Java.net为实现网络应用程序提供类[7]。1.1Eclipse开发工具简介Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。它是一个基于Java平台的开发环境,它本身也要运行在Java虚拟机上,还要使用JDK的编译器,因此我们必须首先安装JDK[4]。先从SUN的官方站点http://java.sun.com下载JDK1.6.0Windows版,,然后运行j2sdk-1_9_0_06-windows-i586-p.exe安装,你可以自行设定安装目录。然后配置环境变量,右击“我的电脑”属性,点击“系统属性”,在系统变量下点击“新建”。如图2-1设置JAVA_HOME变量值为JDK的安装目录,然后如图2-2设置CLASSPATH为当前目录,在如图设置PATH变量为JDK文件的BIN目录。安装好JDK以后再进行Eclipse的下载并按步骤安装即可使用。图2-1设置JAVA_HOME变量图2-2设置CLASSPATH的变量图2-3设置PATH变量 1需求分析和数据库设计1.1模块需求分析本设计要为航空公司开发一套国内机票营业柜员系统,该系统要求能通过分布在全国各主要城市的该航空公司的营业网点为顾客提供航班查询,购买机票,退票以及改签的服务。前台业务包括了航班查询,购票,退票,改签等。具体流程如下:航班查询的业务流程:营业员根据顾客员提供上网出发地,目的地和出发日期等信息,操作该软件查询满足条件的航班。购票的业务流程:在查询出航班信息的基础上,根据顾客的要求选择某个航班,输入乘客信息,以及舱位信息,然后等待顾客确认,并收取票款,然后执行出票操作。退票的业务流程:根据顾客提供的机票号和证件号码,查询出该机票的信息,然后根据该机票的退改签规定收取一定手续费,将剩余票款退还给顾客,并将机票收回(如果有纸质机票的话)。改签的业务流程:根据顾客提供的机票号和证件号码,查询出该机票的信息,然后再录入改签的数据(日期改签,乘客改签),计算出价格差额,多退少补,执行改签操作。后台管理包括了航班管理,营业员和营业网店管理,营业记录,日志记录等。具体功能需求如下:航班管理:航班管理员能添加和删除航班计划,还能临时修改航班计划,对航班计划的修改包括临时添加航班和临时取消航班以及临时改变航班的执行机型。除此之外,航班管理员还能随时更新航班的季节折扣。行营业员和营业网点的管理:营业管理员能添加营业网点,删除营业网点,修改营业网点的信息(名称,地址,电话等),添加营业员,删除营业员。营业记录功能:营业记录是营业员与航空公司进行营业款结算的依据,营业款的结算采用两级结算的原则,航空公司与每个营业网点经理结算,营业网点经理与每个营业员结算,原则上营业款应该每天结算。日志记录功能:日志要求记录以下事件:营业员的登录,登出,成功的订票操作,退票和改签操作,营业款的结算记录,航班管理员对航班的成功修改,营业管理员对营业员和营业网点的成功修改等[3]。如图3-1是前台的功能分析图,描述了前台每个业务的详细流程。 图3-1前台功能模块分析图如图3-2是后台的功能模块图,描述了后台业务的所有流程分析。图3-2后台管理模块分析图1.1具体功能需求分析系统功能模块分为以下几部分:前台营业,后台管理。前台营业1.用户登录/登出:1.1登录;1.2退出登录状态;1.3重新登录。 2.购票:2.1查询航班;2.2购票。3.退票和改签:3.1退票;3.2改签。4.查询营业记录:4.1查询营业记录;4.2导出到excel表。5.营业员结算营业款:5.1申请一级结算。6.网点经理结算营业款:6.1确认一级结算;6.2申请二级结算。后台管理:7.航班计划管理:7.1查询航班计划;7.2添加航班计划;7.3删除航班计划;7.4更改航班计划。8.航班管理:8.1查询航班;8.2添加航班;8.3删除航班;8.4更改航班。9.营业网点管理:9.1查询营业网点;9.2添加营业网点;9.3删除营业网点;9.4更改营业网点。10.营业员管理:10.1查询营业员;10.2添加营业员;10.3删除营业员;10.4更改营业员。11.营业记录管理:11.1查询营业记录;11.2导出到excel表;11.3确认二级结算。12.管理员管理:12.1添加角色;12.2删除角色;12.3更改角色权限;12.4新建账户;12.5删除账户;12.6更改账户权限;12.7清空账户密码。1.1用例图设计根据上述需求分析的到的功能,我们可将他们分为前台和后台2个功能模块,并对其设计用例图,更形象的描述本系统的功能需求。如图3-3是前台管理用例图,包含了用户,营业员,营业网店经理3个对象角色。他们分别都有自己对应的功能模块,并且3者之间是相互继承的,比如营业网店经理包含了营业员,营业员包含了用户,所以营业网点经理可以拥有营业员和用户所有的功能管理,营业员也可以拥有用户的所对应的功能管理。 图3-3前台管理用例图图3-4是后台的管理用例图,它包含了用户,航班管理员,营业员管理员,航线管理员,财务管理员和权限管理员,他们也都有自己对应的业务功能。航班管理员,营业员管理员,航线管理员,财务管理员和权限管理员都可以继承用户的功能模块,但是管理员之间是相互独立的,比如航班管理员不能实现营业员管理员所属的功能。但是一个用户可以拥有多个管理员身份,执行不同管理员的业务。 图3-4后台管理用例图1.1数据库设计明确了系统的需求和功能之后,我们然后对其进行简单的数据库分析。由于数据库是整个系统的核心部分,所有的业务处理都将对数据库进行大量的数据操作,所以数据库的设计将影响整个系统的性能。首先是对实体模型的定义,这里我们只简单的列举了几个重要的实体模型,详细的建表语句请参考附录一。航班计划(Flight_Scheduler):用来描述航空公司执行的某个定期航班的计划表。包含的信息:航班号,起始日期,结束日期,出发地,目的地,离港时间,到港时间,里程,飞机机型,班期,基准票价。航班(Flight):用来描述在某个确定日期执行某个定期航班计划的一次航班。包含的信息:执行的航班计划,出发日期,各舱剩余座位数,季节折扣。营业网点(Branch):用来描述航空公司的某个分支机构,该机构能使用营业柜员系统为顾客提供查询航班订票和退票的服务。点包含的信息:网点编号,网点名称,地址,电话。 营业员(Sales):用来描述在营业网点操作营业柜员系统的操作人员,每个营业员必须凭帐号和密码登录系统后才能为顾客提供服务。包含的信息:营业员编号,营业员帐号,密码,所属营业网点编号。机票信息(Ticketinfor):用来描述顾客已订购的航班及乘客信息。包含的信息:航班号,航班日期,乘客省份证号,姓名,机票价格,出发地,目的地,乘客类型等。机场(Airport):用来描述机场信息,可根据需要进行机场的建设。包含的信息:省份名,城市名,机场代码,机场名。飞机型号(Airport_model):用来描述各飞机型号的详细信息。包含的信息:飞机型号,最长航程,制造厂商,头等舱座位数,经济舱座位数,公务舱座位数。售票记录(Sale_recorder):用来描述所有营业员营业的记录,包括订票,退票,改签等。包含的信息:网店编号,营业类型,营业员编号,记录时间,营业金额,记录状态。 1系统总体设计与代码编写1.1系统总体设计1.1.1Eclipse开发工具简介通过第三章的需求分析大致了解了几个功能模块,图4-1描述了整个系统的模块结构。用户有统一的登录界面输入账户密码进行登录,若登录失败,则返回登录界面;登录成功,则根据角色编号分别进入前台业务管理界面和后台管理界面。再根据各自的所有权限进行不同的功能操作并访问数据库。图4-1系统总体模块设计1.1.2系统流程设计 图4-2给出了本系统的一个设计流程,用户通过点击界面上的监听按钮,向服务器发送请求并将请求数据封装在Request中,服务器接收到请求后通过Action判断请求类型并交给相应的事件处理机制doAction来处理请求数据,从Request中得到请求的数据后调用DAO接口中的相应方法来访问数据库,并进行数据处理操作。完成后DAO返回给doAction一个数据结果,doAction经过对返回的结果进行处理后封装到Reponse中,通过服务器的传送返回到界面显示给用户。图4-2系统总体流程1.1.1系统总体框架设计如图4-3是本系统代码编写的总体框架。从图中可以清楚的看到本系统框架: 图4-3系统框架设计GUI图形界面:包括了前台界面(business.gui),后台界面(manag.gui),公用界面(common.gui)如登录等,另外还为服务器的开启和关闭创建了一个server.GUI。common.entity包提供了所有实体对象的封装类,比如User,Flight,Airport等。common.pro包提供数据请求时用的Request封装类和响应请求用的Reponse封装类,还包括information封装类用来存放用户登录后的所有信息。business.client,manage.client和server.action包中都有一个Action类,这个类使用输入输出流的方式来建立客户端与服务器的连接。server.dao则是用来访问数据库的DAO接口,里面有各种不同实现方法。只要通过调用其中一个方法就能返回所需要的结果。1.1整体界面设计为了创建良好、优雅的用户界面,本系统使用JavaSwing技术进行界面开发。Java.swing是一个用于开发Java应用程序用户界面的开发工具包。我们只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。1.1.1登陆界面图4-4登录界面是所有用户共有的,所以将其代码编写放在common.gui包下。图4-4登录界面登录界面中有2个按钮,我们需将它设置必要的监听器以触发登录或取消登录事件。监听器方法如下:/*添加监听方法*/publicvoidaddHandlers(){this.btnSubmit.addActionListener(newActionListener(){//点击了登陆按钮,开始登陆publicvoidactionPerformed(ActionEvente){login(); }});this.btnCancle.addActionListener(newActionListener(){//点击了退出按钮,程序结束publicvoidactionPerformed(ActionEvente){System.exit(0);}});}点击登录按钮后,触发相应监听器,执行login()方法。login()方法获得文本框中的用户名和密码后封装到Request通过输入流方式向服务器发送请求,并得到响应结果。然后根据响应结果判断用户信息,根据不同角色权限分别进入不同的管理界面。login()方法具体代码如下:privatevoidlogin(){//判断输入框中登录名和登录密码是否为空,若为空则返回。if(jtfUid.getText().trim().equals("")||newString(jpfPwd.getPassword()).trim().equals("")){JOptionPane.showMessageDialog(this,"登录名和登录密码不能为空!");return;}Requestreq=newRequest(Request.REQUEST_LOGIN);req.addData("user_name",jtfUid.getText().trim());req.addData("password",jpfPwd.getText());//将用户名和密码封装到Request对象中Actionaction=newAction();Responseres=action.doAction(req);//建立连接后,发送Request请求并得到响应Reponse对象if(((String)res.getData("LOGIN")).equals("OK")){Useruser=(User)res.getData("USER");Information.addData("USER",user);Information.addData("PROVINCES",res.getData("PROVINCES"));Information.addData("CITIES",res.getData("CITIES")); //将返回得到的User对象封装到Information中if(user.getRole_id()<=2){Salessales=(Sales)res.getData("SALES");Information.addData("SALES",sales);newcom.business.gui.MainFrame().showMe();//判断用户权限,若是前台管理则进入前台界面,否则进入后台界面}else{newcom.manage.gui.MainFrame().showMe();}this.dispose();}elseif(((String)res.getData("LOGIN")).equals("NO")){JOptionPane.showMessageDialog(this,"账号或密码错误");}elseif(((String)res.getData("LOGIN")).equals("MASK")){JOptionPane.showMessageDialog(this,"对不起,您已被屏蔽");}elseif(((String)res.getData("LOGIN")).equals("LOGIN")){JOptionPane.showMessageDialog(null,"警告!!! 此用户已经登录");}}如上就是一个登录的监听方法和数据的发送及响应方式。在接下来的文章中,我们将不再重复介绍类似的方法编程。1.1.1前台功能设计根据需求分析所得,前台界面设置了六个功能按钮:订购机票按钮,退票/改签按钮,营业记录按钮,一级结算按钮,二级结算按钮和退出登录按钮。如图4-5,这些按钮都设置了不同的监听对象,点击按钮将会刷新界面,显示对应的功能模块进行业务操作。 图4-5前台营业功能界面界面显示部分代码如下:panCenter.setLayout(this.cardLayout);//将显示界面设为卡片布局panCenter.add("SearchTicket",newSearchFlightResultPanel(this));//添加订票模块panCenter.add("BounceTicket",newReturnTicketPanel(this));//添加退票、改签模块panCenter.add("SaleReorder",newWorkRecord(this));//添加营业记录模块panCenter.add("SaleSubmit",newBusiAccountForSales());//添加一级营业结算模块panCenter.add("ManagerSubmit",newBusiAccountForManager());//添加二级结算模块1.1.1.1.订购机票点击订购机票按钮,显示如图4-6查询航班界面。在出发地和目的地都设置了下拉框按钮,以便用户方便选择省份和城市。若某地区为建设机场,则下拉框中不会显示该地区,用户也就无法选择此地区进行查询订票,这样保证了营业员在进行业务操作时的效率。用户也可直接输入航班号进行查询。图4-6查询航班界面 在搜索结果的每一项列表都添加有对应的订票按钮,点击该按钮页面将跳转至订票界面,如图4-7,并将航班的信息传至此界面显示。按照显示输入乘客资料及舱位类型,可计算出机票的总价格。最后按出票按钮,即成功订购此机票。图4-7机票订票界面1.1.1.1.营业纪录在主界面中点击营业记录按钮,即可转换至营业记录显示界面如图4-8。用户可根据当天用户或历史记录来查询该时间段的营业记录,显示的记录信息包括营业编号,营业时间,营业类型,网店编号,营业员工编号,营业金额和记录的提交状态。在界面的最下方设置了一个导出文本按钮,方便用户对记录数据的导出和保存。图4-8营业记录界面查询按钮的监听代码如下:search.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){for(inti=0;i<50;i++){jTable.setValueAt("",i,1);jTable.setValueAt("",i,2);jTable.setValueAt("",i,3);jTable.setValueAt("",i,4);jTable.setValueAt("",i,5);jTable.setValueAt("",i,6);jTable.setValueAt("",i,7); }Requestreq=null;req=newRequest();req.setType(Request.REQUEST_SEARCH_SALRECORD);//设置请求类型if(nowRadio.isSelected()){//判断是否查询当日营业记录Dated=newDate();inttoyear=d.getYear();inttomonth=d.getMonth();inttoday=d.getDate();Datedt=newDate(toyear,tomonth,today);Datedf=newDate(toyear,tomonth,today);req.addData("todate",dt);req.addData("fromdate",df);}elseif(field1.getText().trim().equals("")||field2.getText().trim().equals("")){JOptionPane.showMessageDialog(WorkRecord.this,"请输入日期");return;}else{Stringsf=field1.getText();Stringst=field2.getText();String[]s1=sf.split("-");String[]s2=st.split("-");Datedf=newDate(Integer.parseInt(s1[0])-1900,Integer.parseInt(s1[1])-1,Integer.parseInt(s1[2]));Datedt=newDate(Integer.parseInt(s2[0])-1900,Integer.parseInt(s2[1])-1,Integer.parseInt(s2[2]));req.addData("todate",dt);req.addData("fromdate",df);}req.addData("sale_id",1);//传入营业员ID req.addData("branch_id",0);//传入营业网店IDResponseres=null;res=newResponse();Actionaction=newAction();res=action.doAction(req);//得到请求响应record=(Vector)res.getData("record");Strings=null;for(inti=0;i经理(一级结算)字段名描述类型约束范例rec_id营业记录编号int(8);PK;auto_increment1branch_id网点idint(8);notnull1,2rec_type营业发生类型int(1);notnull1sales_id营业员idint(8);notnull1,2rec_time营业记录时间varchar(32);notnull2010-1-1-13-24-45account金额double(10,0);notnull4400state结算状态int(1);notnull0、1SQL建表脚本:createtableSale_Recorder(rec_idint(8)auto_incrementnotnull,branch_idint(8)notnull,rec_typeint(1)notnull,sales_idint(8)notnull,rec_timedatenotnull,accountdouble(10,0)notnull,stateint(1)notnull,primarykey(rec_id),foreignkey(branch_id)referencesBranch(branch_id),foreignkey(sales_id)referencesSales(sales_id))type=innodb;setautocommit=0;20,表名(英语表名):Manager_Submit二级结算表 字段名描述类型约束范例second_id二级结算IDint(8);PK;auto_increment1,2,3second_date二级结算时间varchar(32);notnull2011-2-3-15-4-30second_account二级结算金额double(12,2);notnull45000account_number网点交易数int(8);notnull890branch_id网点IDint(8);notnull1,2,3…SQL建表脚本:createtablemanager_submit(second_idint(8)auto_incrementnotnull,second_datedatenotnull,second_accountdouble(12,2)notnull,account_numberint(8)notnull,branch_idint(8)notnull,primarykey(second_id),foreignkey(branch_id)referencesBranch(branch_id))type=innodb;setautocommit=0;21.表名(英语表名):Err_Daily错误日志字段名描述类型约束范例err_id错误编号int(4);PK;auto_increment1err_title错误类型varchar(20);notnull读入文件错误err_comments错误描述varchar(32)文件不存在err_time错误发生时间varchar(32);notnull2011-1-5-20-12-34err_code错误编码int(4);notnull1001SQL建表脚本:createtableerr_daily(err_idint(4)auto_increment,err_titlevarchar(20)notnull, err_commentsvarchar(32),err_timedatenotnull,err_codeint(4)notnull,primarykey(err_id))type=innodb;setautocommit=0;22.表名(英语表名):User_Daily账户日志字段名描述类型约束范例user_daily_id账户日志编号int(8);PK;auto_increment1user_type账户事件类型int(1)1user_time发生时间varchar(32);notnull2011-1-5-20-34-01user_id账户编号int(8)1SQL建表脚本:createtableUser_Daily(user_daily_idint(8)auto_increment,user_typeint(1),user_timedate,user_idint(8))type=innodb;setautocommit=0;23.表名(英语表名):Manage_Daily管理日志字段名描述类型约束范例manage_daily_id管理日志编号int(8);PK;auto_increment1manage_time操作发生时间varchar(32);notnull2011-1-5-20-23-02manage_type操作类型int(1);notnull2manage_comments操作描述varchar(32);notnull查询某航班user_id操作员int(8);notnull1 SQL建表脚本:createtableManage_Daily(manage_daily_idint(8)auto_increment,manage_timedate,manage_typeint(1)notnull,manage_commentsint(8)notnull,primarykey(manage_daily_id))type=innodb;setautocommit=0;附录二:DAO接口具体方法汇总接口方法AirlineDaopublicHashtablegetAirline(Stringfrom_city,Stringto_city);publicintdelAirline(Stringfrom_city,Stringto_city);publicintaddAirline(intairline_id,Stringfrom_city,Stringto_city,intmileage);publicintchangeAirlineMileage(Stringfrom_city,Stringto_city,intmileage);publicintaddAirport(Airportairport);AirplaneModelDaopublicHashtablegetSeats(StringFlight_type);publicHashtablegetAllTypes();AirportDaopublicintaddAirport(Airportairport);publicHashtablegetProvince();publicHashtablegetAirport();publicHashtablegetCity();BranchDAOpublicHashtablegetBranch(intbranch_id,Stringbranch_name,Stringprovince_name,Stringcity_name);publicintaddBranch(Branchbranch); publicintdelBranch(intbranch_id);publicintchangeBranch(intbranch_id,Stringbranch_name,Stringbranch_tel,Stringmanager_name,Stringaddress);publicHashtablegetBranches();FlightDAOpublicHashtablegetFlight(Stringflight_id,Stringfrom_city,Stringto_city,Dateflight_date);publicintaddFlight(Flightflight);publicintdelFlight(intid,intscheduler);publicintChange_Seasondiscount(Stringflight_id,Dateflight_date,doubleseason_dis);publicvoidchangeSeatsLeft(Stringflight_id,Dateflight_date,Stringcabin_type);publicvoidchangeSeatsLeft(DatepriFlightDate,DatenewFlightDate,StringpriFlightId,StringnewFlightId,Stringcabin_type);publicHashtablegetFlight(Stringfrom_city,Stringto_city);FlightSchedulerDAOpublicHashtablegetFlight_Scheduler(Stringflight_id,Stringfrom_city,Stringto_city);publicintaddFlight_Scheduler(Flight_Schedulerflight_scheduler);publicintdelFlight_Scheduler(intscheduler_id);publicintChangeFlight_Scheduler(Flight_Schedulerflight_scheduler);publicintChangeAll_Seasondiscount(Stringfrom_city,Stringto_city,doubleseason_dis);ManageDailyDAOpublicHashtablegetManage_Daily();publicHashtablegetManage_Daily(Stringuser_name);publicHashtablegetManage_Daily(Datemamange_from_time,Datemamange_to_time);publicHashtablegetManage_Daily(Stringuser_name,Datemamange_from_time,Datemamange_to_time);publicvoidaddManage_Dariy(Manage_DailymanageDaily);ManageDAOpublicSale_RecordergetSale_Recorder(Datefrom_date,Dateto_date);publicvoidsend_manager_submit(Manager_Submitmanager_submit);ManagerSubmitDAOpublicHashtablegetManager_Submit( Stringprovince_name,Stringcity_name,Stringbranch_name);publicHashtablegetManager_Submit(Stringprovince_name,Stringcity_name);publicHashtablegetManager_Submit(Stringprovince_name);publicintconfirm_Manager_Submit(intsecond_id);publicvoidsend_to_manager_submit();PassengerInforDAOpublicPassengerInforgetPassengerInfor(Stringid);publicvoidaddPassengerInfor(PassengerInforpass,intmileage);publicvoidchangePassengerInfor(Stringid,intmileage);PriceDAOpublicintgetPrice(Stringfid,Stringpass_type,Stringcabin_type);publicintgetBuild_Fee(intseats,Stringpass_type);publicintgetTax(intmileage,Stringpass_type);Pro_CityDAOpublicHashtablegetProvince();publicString[][]getCity();publicStringgetCityName(intcity_id);publicStringgetProName(intpro_id);publicHashtablegetBranchByCName(Stringcname);RoleDAOpublicRolegetRole(introle_id);publicRoleaddRole(Rolerole);publicintdelrole(Vectorroles_id);publicRolechange_role_authorith(Rolerole);SaleRecorderDAOpublicHashtablegetSale_Recorder(intbid,Stringds,Stringde,intoperation,intrstate);publicVectorgetSale_Recorder(Calendarfrom_date,Calendarto_date,intbranch_id)throwsSQLException;publicvoidsend_Sale_recorder(Vectorrecs_id)throwsSQLException;publicvoidconfirm_Sale_recorder(Vectorsale_ids)throwsSQLException;SalesDAOpublicintaddSales(intsales_id,intbranch_id,Stringsales_name,Stringuser_name);publicintdelSales(intsales_id); publicHashtablegetSales(intsales_id,Stringsales_name,Stringbranch_name);publicintchangeSales(intsales_id,Stringsales_name,intbranch_id,Stringuser_name);publicSalesgetSales(Stringuser_name);TicketInforDAOpublicintaddTicketInfor(FlightShowflightShow,PassengerInforpass,Stringpass_type,Stringcabin_type);publicHashtablegetTicketInfor(Stringorder_id,Stringpass_name,Stringcertificate_id);publicintdelTicketInfor(Stringorder_id);publicintchangeTicketInfor(Stringorder_id,StringnewFlightId,DatenewFflightDate,Stringcabin_type);UserDailyDAOpublicHashtablegetUser_Daily();publicHashtablegetUser_Daily(intuser_type);publicHashtablegetUser_Daily(Stringuser_time);publicHashtablegetUser_Dailies(StringfromTime,StringtoTime);publicvoidadd_User_Daily(User_Dailyuser_daily);UserDAOpublicUseraddUser(Useruser)throwsException;publicVectorgetUser(intuserid,Stringuser_name,introle_id)throwsException;publicVectorgetUser(introle_id)throwsException;publicintdelUser(Vectorusers_id)throwsException;publicUserchange_user_authorith(Useruser)throwsException;publicintclr_userpwd(Vectorusers_id)throwsException;publicUsermask_user(intuser_id)throwsException;publicUserapply_user(intuser_id)throwsException;publicVectorgetMask_User(intuser_state)throwsException;publicUsergetUser(Stringuser_name,Stringpassword)throwsException;

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭