平台上被编译为体系结构中立的字节码格式(后缀为class的文件), 然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。
7、Java语言是可移植的。这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的。
8、Java语言是解释型的。如前所述,Java程序在Java平台上被编译为字节码格式, 然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。
9、Java是高性能的。与那些解释型的高级脚本语言相比,Java的确是高性能的。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。
10、Java语言是多线程的。在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为Thread(Runnable) 的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。 Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。
11、Java语言是动态的。Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。
Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是Java企业应用编程接口(Java Enterprise APIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。 1.3 开发工具
Eclipse:
Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。 Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。
JDBC:
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL
语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序,同时,JDBC也是个商标名。
、SessionFactory、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这五的核心接口分别加以介绍。
·Session接口:Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。)。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSesion对象称为用户session。
·SessionFactory接口:SessionFactroy接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。
·Configuration接口:Configuration接口负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。
·Transaction接口:Transaction接口负责事务相关的操作。它是可选的,可发人员也可以设计编写自己的底层事务处理代码。
·Query和Criteria接口:Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式。 2.需求分析:
2.1软件分层与部署:
我把软件非为三个层次:分别是表现层,业务层,和持久层。 表现层即是客户端,客户端包装请求,通过socket发放服务器。 服务器通过控制器,把请求转发给不同的模块处理。 模块调用相应的Dao访问数据库。
软件分层实现了格模块功能之间的松散耦合,有利于功能扩展,系统维护。
图1 部署图
2.2系统功能模块:
主要的系统功能模块如下:
客户端模块:
1,代理商登陆模块BranchDAO.getBrancht()
2,查询航班模块(A):FlightDAO.getAllFlights() 3,订票模块(A)OrderTicketDAO.order()
4,修改密码模块(A):AgentDAO.modifyPassword()
服务器模块:
1,添加营业网点模块(B):BranchDAO.addBranch() 2,删除营业网点模块(B):BranchDAO.removeBranch() 3,查询营业网点模块(B):BranchDAO.addBranch()
4,添加飞机型号模块(B):PlaneModelDAO.addPlaneModel()
5,添加航班计划模块(B):FlightDAO.addFlightSchedular()
6,查询航班计划模块(B) FlightDAO.getAllFlightSchedulars() 7,添加航班模块(B):FlightlDAO.addFlightl()
8,统计所有出票记录模块:TicketOrderDAO.getAllTicketOrder() 9,统计网点出票记录模块: TicketOrderDAO.getBranchTicketOrder()
营业员登录营业员修改密码前台操作查询航班出票管理员登录XX航空公司国内机票售票系统查询航班计划添加航班计划航班管理删除航班计划添加飞机型号查询营业网点营业网点管理后台管理添加营业网点删除营业网点查询营业网点业务量统计信息查询月报表查询出票信息图2 模块划分
2.3系统活动图:
系统活动过程如下:
服务器读取配置文件,启动。之后可以进行航班管理,网点管理,统计信息等。 客户端读取配置文件,启动,连接服务器,登陆成功后,才可以进行航班查询修改密码,订票等操作。每一步操作都要发往服务器处理。 服务器同时可以服务多个客户端线程。
图3 系统活动图
2.3用例图:
2.3.1客户端用例:
此图描述了客户端的各功能依赖关系