本系统数据库中包含的数据表主要有飞机机型表(AIR-
图1部署图
PLANE_MODEL)、航班计划表(FLIGHT_SCHEDULER)、航班表(FLIGHT)、营业网点表(BRANCH)、出票记录表(TICKET_ORDER)。2.3DAO接口设计
本系统设计了通用的DAO接口,而不是直接写访问数据库的实现类,这样可以创建不同的实现类来实现接口,使标准制定和标准实现分离。当换了数据库,或者换了数据库访问技术,就可以写新的实现类,不用改变原来的代码。如定义FlightDAO接口,若从文件中读取数据可以定义FlightDaoFromFile实现类,若利用JDBC访问数据可以定义FlightDaoFromJDBC实现类,若利用hibernate访问数据可以定义FlightDaoFromHibernate实现类等。邮局订阅号:82-946360元/年-213-
2系统设计
2.1业务模型
通过上面的分析,建立了下列Java实体类:
1)航班计划(FlightScheduler):用来描述由某个航空公司执
行的某个定期航班的计划表。
2)航班(Flight):用来描述在某个确定日期执行某个定期航
赵晓霞:本科讲师基金项目:牡丹江师范学院教育教学改革工程指导项目
(09YD-09337)《PLC技术应用200例》
软件时空
《微
计算机信息》(管控一体化)2010年第26卷第9-3期
3关键代码分析
3.1流程代码分析
服务器启动时读取配置文件,读取数据,并且服务器端
}3.2用表格显示表单
当客户端查询到航班计划时,把flightlist航班集合传给
ServerSocket等待客户端线程访问,当收到客户端响应后,则创
建一个新的服务线程执行服务。
FlightTableModel,再把FLightTableModel传给JTable,然后把JTable加入JScorllPane,就会自动显示数据。FlightTableModelftm=newFlightTableModel(flightlist);JTablejt=newJTable(ftm);ClientMainClass.clientFrame.setTable(jt);FlightTableModel实现了AbstractTableModel接口,实现了如
下四个方法。
ServerSocketss=null;Sockets=null;try{//创建服务器socketss=newServerSocket(Integer.parseInt(pro.getProperty("ServerPort")));while(true){s=ss.accept();//转发给serverThread处理(传递socket参数)newServerThread(s).start()}}catch(IOExceptione){e.printStackTrace();}服务线程ServerThread通过构造函数接受socket,然后转发给ControllerpublicclassServerThreadextendsThread{Sockets;protectedServerThread(Sockets){//用传入的socket初始化this.s=s;}publicvoidrun(){try{newController(s).handle();//交给控制
器处理
packagecom.tarena.abs.client;importjavax.swing.table.*;importjava.util.*;importcom.tarena.abs.model.*;publicclassFlightTableModelextendsAbstractTableModel{ArrayLists;publicFlightTableModel(ArrayLists){this.s=s;}//获得列名publicStringgetColumnName(intarg0){switch(arg0){case0:return"航班号";case1:return"出发地";case2:return"目的地";case3:return"起飞时间";case4:return"到达时间";case5:return"机型";case6:return"票价";case7:return"头等舱";case8:return"公务舱";case9:return"经济舱";default:returnnull;}}//获得行数
技术创新
}