的那端,因为外键受约束于父端的主键。在的映射文件中对于属性的设置系统中的持久化对象间的关联关系必须靠它们其中方来维护,并且通过映射文件中的属性反应出来,般情况下,属性值默认为,指明该端为关联关系的主控端。但是如果在关联关系为对多的两个对象中,将的那端设为关联关系的主控方,当执行插入和删除操作时,会影响到执行的效率。由于端被设置为关联关系的维护方,那么每次执行插入操作时,都会先向多的那端插入记录,再插入端的记录,但是由于多端的外键受约束于端的主键,若先生成多端的记录的话,会因为不知道端的主键,而暂时使外键字段为,当端记录插入后,才能将多端的外键字段值更新,此时个简单的插入操作就要通过两步来完成,其中个操作就是对外键字段的更新操作。当端数据发生更新时,由于它是关联关系的维护放,所以它要对集合中的每个对象都进行更新。这样每次更新时都会执行次操作,为集合中对象的个数。在端将属性设为,在生成多端记录时,只用执行条插入语句。在执行更新操作时,由于是关联关系是由多端维护的,因此多端只用先更新它,然后再更新端即可。这样只需执行次操作,比上述的次操作的效率要高很多。第十章开发的心得体会与收获经过为期个来月的准备,以及紧接着的将近个月的系统开发,我收获了许多。由于本系统采用的是目前最流行的应用开发框架技术,而且难度也不小,所以本人花了许多时间和精力去准备,整个过程,都是通过自己看书,上网找资料,不断地询问了解的人,才艰难地把这些技术的基础了解了遍,期间自己也动手做了许多试验试着去熟悉,掌握这些技术,最后也收获了不少,并且把这些收获都记录了下来,作为今后开发的宝贵经验。由于本系统业务逻辑比较复杂,页面间跳转比较多,再加上这是本人第次用比较强的技术来开发系统,所以难度比以前做过的任何课程设计都要大,但是正是这次设计,使我的动手实践能力得到很好的锻炼,同时也无形中提高了自身的自学能力,使自己的自信心倍增。经过这次设计,让我全面了解了个从需求分析到总体设计,再从详细设计到系统测试的完整的软件开发流程。了解到了需求分析在整个系统开发中所起的关键作用,需求分析的好坏直接影响到系统后面的设计,严重者将影响到系统的开发效率,所以我在需求分析这个阶段花了不少时间来,由于这不是真正的面向用户的具有商业性质的系统,所以并不存在真正的用户去提供信息给我,故很多时候我必须站在用户的角度去思考问题,揣摩用户的心理,然后再根据思考的结果去设计系统的功能模块。总体设计就是要确定系统的具体实现方法,接口说明以及在开发中的些规范。即就是根据系统业务的复杂度,选择系统的最佳实现方案。本系统采用的是层架构表示层业务层持久层来进行开发,使用了目前较流行的应用开发框架,以适应业务逻辑比较复杂的系统。并且在整个开发过程中,这门技术的优越性也逐渐显示出来,降低了开发的难度,同时也降低了系统的耦合度,给维护带来了很大的方便,但是前提是开发者必须熟悉这些开发技术,才能利用它们来服务系统。详细设计就是代码编写阶段,这个阶段主要根据总体设计的结果来进行编码实现,此时就是考验自己的基础是否掌握得牢靠的时候了,由于是使用来进行开发的,它具有动态编译功能,所以在编写代码的过程中,可以实时检查语法是否规范,标准,也着实为开发提高了不少效率。代码编写完毕后就进入系统的测试阶段,这个阶段花费了比编码还要多的时间,因为在这个过程中,你遇到不是代码语法的问题,而是更令人头疼的逻辑的问题,它将让你在查找,改正以及调试上花去许多时间,这时就得考验你是否够细心,耐心以及具有解决问题的决心。所以我认为这次设计不仅仅使我们的动手能力得到提高,更重要的是,我们的心志也得到很好的磨练。所以这次的设计令我受益匪浅。参考文献陈天河等编集成开发宝典北京电子工业出版社,年月刘中兵开发者突击主流框架整合开发彭超马丁编著新代网络编程入门与实践北京清华大学出版社,年月萨师煊王珊数据库系统概论北京高等教育出版社,年陈天河等编集成开发宝典北京电子工业出版社,年月思志学等编著自己动手写构建基于的开发框架北京电子工业出版社,年月陶勇李晓军编著最佳实践北京清华大学出版社,年月致谢在毕业设计完成之际,我要感谢所有帮助过我的人们。首先,我要感谢我的指导教师刘智斌老师,在这次毕业设计中刘老师对我们的每个问题都有问必答,而且都很认真,耐心地对我们的设计进行多次指导,所以我的毕业设计能最终完成离不开刘老师对我的帮助。其次我要感谢帮助过我的甘应文同学,感谢他在我遇到困难时给予了我热心的帮助,还有达内班的老师,感谢他对我的毕业设计进行的技术方面的多次指导,在此真心地感谢他们。基于结构的数字酒店管理系统的设计与实现。当在层与层之间进行传递的时候,难免会出现传递的并不是对应于当前线程的,这样将可能对还未提交的事务提前提交,而应该提交的事务并没有得到及时的提交,从而无法最终将对象持久化到数据库中,并且提交别的事务也没有意义。将与当前线程绑定,以保证线程,最终正确提交事务。在本系统中,我通过调用工具类的方法获得当前线程的,而该实际是通过类中的方法获得。同时将与它开启的事务通过个类中的个类型的集合进行关联。系统的实现代码如下类中的方法如果不存在该,则创建个并与该线程绑定层类的部分代码调用层的实现类中的方法将数据插入数据库中,提交事务类中的两个重要方法由于本系统在数据库中建立的表都是遵循第范式的,即表与表之间存在关联关系,经常会通过连接查询来查找表中的信息。故通常关联的两张表就会通过主外键关联在起,而在对其中张表进行增删改操作时,由于它与其他表存在关联关系,就不得不考虑到正在进行的操作是否会影响到另张表,由此就问题丛生起来。问题的关键字对当前执行的操作进行级联操作。是反转的意思,指的是关联关系的被控端。如果,即当前对象是关联关系的被控方,反之,则是主控方。在的映射文件中对于属性的设置如上所说,在关系型数据库中,表并不是独立存在的,表与表之间通常存在关联关系,并通过主外键将两表关联起来,那么当个表中的条记录发生变化后,就会影响到另张表的条与之关联的记录。下面就系统中的菜肴表和菜肴类型表进行问题的具体描述。系统中的菜肴表与菜肴类型表之间存在关联关系,菜肴表通过菜肴类型字段与菜肴类型中的字段相关联,其中菜肴类型字段是菜肴表中的外键,菜肴类型表中的字段是菜肴表的主键,它们之间是多对的关系。外键字段的值受主键字段约束,即外键字段的值是对主键字段中的值的引用。如果我们向子表外键所在的表中插入条记录,而该记录的外键值在父表主键所在的表的主键中没有与之匹配的值,那么数据库将认为这是非法操作,并提示出错说在父表中找不到与之匹配的主键。另外,如果删除父表中的条记录,而在子表中还存在与之关联的记录,此时数据库也会报错,说子表中仍然找得到与父表主键匹配的外键值。所有这些非法操作将导致操作无法正常的进行,即使正常进行也会使表中出现些无意义的记录。数据库之所以会提示上述的,是因为它考虑到这些操作的最终结果会导致些无意义的记录的出现,因为外键使受主键约束的,它不可能脱离主键而独立存在,它的值是对主键的值的引用,故不能平白无故地插入个在父表的主键中没有出现过的值,这将违反完整性约束。另外,如果先删除父表中的条记录,而与之关联的记录在子表中还存在,那么结果将导致子表中的这条记录变