- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课程设计个人体会
《数据库原理与应用》
课程设计
个人总结
题 目 机票预定系统
专业班级 计0903
学 号 200907010313
姓 名 杨玉龙
指导老师 强新建
完成时间 2012年1月12 日
首先说明我本次数据库设计的任务和时间的分配。我的主要任务是MIS系统的编写,并连接数据库,测试运行并演示。前三天,我和组内其他同学一同访问不少的机票订阅网站,研究了一下他们的优点和缺点。虽然我们访问的机票预订系统都是采用B-S模式架构,即浏览器-服务器模式,但是鉴于难度过大,我们采用了C-S的服务器架构模式,即客户端服务器模式。对于本次设计,我们几乎沿用了其他机票预订系统的基本功能。原则上较圆满的完成了这次课设任务,完成成品一个,程序编写语言使用语言java,数据库操作语言采用sql语言。因此程序的移植性和适应性较为良好,而且在程序编写过程中还注意到了不同平台系统的差异问题,从而编写了较为健壮的语句和判断数据完整性的语句,这正是java语言和sql的特点之一。下面我就程序编写方面的体会做一总结。
本MIS系统的程序编写的架构模式是DAO,即数据访问对象的方法。首先解释一下DAO的含义。DAO(数据访问对象)是一种应用程序编程接口(API),J2EE开发人员使用数据访问对象(DAO)设计模式把底层的数据访问逻辑和高层的商务逻辑分开.实现DAO模式能够更加专注于编写数据访问代码。首先看下面我的程序结构,如图Fig-1,在简单解释一下。
Fig-1 程序结构图
当需要传递实体的数据时,就将数据封装在对象内部,而实体类内写好get,set方法,便于实体对象属性的获得和设置。同时,写好实体对象的接口,这些接口中只定义实体对象的行为,在java中就是方法。而方法定义时传入的参数和返回值完全取决于数据的需求,就拿本题来说,当点击某个按钮或触发某个事件的响应时,当要按照航班号查询机票的时候就要给方法里传入一个String类型的航班号,而返回值最好是一个机票的对象,在GUI(图形用户接口,也就是与用户交互的界面)中使用此类的get,set方法得到机票的一些列属性,如机票号,航班号,起飞时间等,从而呈现给用户。而这些接口的实现类中则具体是方法的内容。还有一个最重要的过程,MIS与数据库的连接。这个功能完全依靠于BaseDAO.java这个文件。这个文件里存放了所有有关数据连接的语句,这是个抽象类。之所以定义为抽象类是为了让实体的实现类继承它,则操作时就可以方便的连接数据库了。实体的实现类一方面通过继承连接数据库,另一方面通过实现实现类的接口实现方法。这样就完全体现出了DAO程序设计结构的好处,即:结构清晰,操作便捷,参数传递安全可靠,使得程序健壮性有很大的提高。
下面介绍我程序的结构,com.jay.dao下的BaseDAO.java负责数据库的连接。com.jay.entity下的所有类是实体的类。com.jay.dao.interf是实体类的接口,只用来定义实体的行为,也就是方法。com.jay.dao.impl是实体接口的实现类,负责具体方法的实现。com.jay.view存放所有的GUI,方便与用户交互。com.jay.util里有两个类,分别用来处理时间在数据库中存放方式和登陆密码的验证。
在这次数据库课程设计中,我的程序编写能力有了很大的提升,这些都是在不断地调试和编写中提高的。如java中很常见的NullPointerException,这个异常是程序编写的而过程中遇到的最多的异常,空指针异常。调试方法很简单,添加打印语句,检测那个对象是空的。而空指针异常使得对象为空的原因很多,就拿这次来说,参数传递的失败是所有程序编写过程中最容易出现空指针异常的。当你所需要的对象是空值时,而你又使用了这个对象去调用它的方法,那肯定会出现空指针的异常,因为空值无法调用任何方法。不断地添加打印语句,从得到这个对象的所有途径上分析问题到底出在了哪里。还有一个就是我听过这次程序的编写,学会了直接在两个试图面板上进行参数传递,方法其实很简单,就是将需要传递的属性封装成对象,然后将对象声明为静态的,这样就可以直接通过类名调用了。为什么说在两个试图面板上进行参数传递时有一定的困难呢?因为普通的传参是通过实现实体类接口的方法进行参数的传递,而那些一运行就需要参数而没有调用任何方法就需要参数的的面板就没法实现了,所以静态对象就解决了这个难题。
还有一个很头疼的问题就是时间在数据库中存放的形式。想必这是多数设计者都很头痛的问题,这里java就提供了一个时间戳制作类,将用户定义的时间的类型生成对象的时间戳存入数
文档评论(0)