1、毕业设计管理系统论文摘要目前随着计算机技术的发展和普及,各行各业的管理机构开始使用计算机处理大量信息。在我国药品品种繁多,规模甚大,以往的手工记载、查询操作容易出错且工作效率低,已经不能适应时代发展的要求,从管理的角度来看,对管理者会造成诸多的不便,还有可能疏忽一些细节,让不法商家逃脱罪责。所以,市场迫切需要一款简单实用的药品管理系统。随着小型计算机,微型计算机的成本的不断下降,性能的不断提升,使得计算机作为当今最重要的信息产品,成为人民大众必不可缺的工具。计算机技术已经广泛应用于日常办公,企业管理,文字处理、电子报表以及进行简单的人事管理、财务管理等,大大提高了我们的工作效率,节省许多资源,
2、使管理更加规范化,系统化,科学化。目录引言1第一章 绪论11.1 背景与意义11.2 国内外相关研究现状及分析21.3 研究内容及本文结构4第二章 毕业设计管理系统总体分析与设计52.1 毕业设计管理系统设计目标52.2 毕业设计管理系统功能需求分析52.2.1 教师的功能需求分析52.2.2 学生的功能需求分析92.2.3 管理员的功能需求分析102.2.4 毕业设计管理系统活动图122.2.5 毕业设计管理系统性能需求分析142.2.6 毕业设计管理系统其他约束分析152.3 可行性分析152.3.1经济可行性152.3.2技术可行性152.3.3用户可行性162.5 毕业设计管理系统总体
3、功能设计162.5.1 毕业设计管理系统总体功能及其结构162.5.2 毕业设计管理系统总体业务流程162.6 毕业设计管理系统开发系统结构设计17第三章 毕业设计管理系统详细分析与设计193.1 毕业设计管理系统模块的详细分析与设计193.1.1 教师前台模块193.1.2 学生前台模块203.1.3 管理员后台模块203.1.4 毕业设计管理系统的数据概念模型213.1.5 系统序列图213.1.5 系统包结构图403.1.6 系统类图403.1.6 类描述433.2 毕业设计管理系统数据库设计443.2.1 毕业设计管理系统数据库实体关系图443.2.1 毕业设计管理系统关键数据表45第
4、四章 毕业设计管理系统实现484.1 分组算法的实现484.2 评分自动拆分技术实现514.3 评语级联及填写技术实现524.4评语表PDF表单技术的实现534.5 开发工具、开发环境和开发语言54第五章毕业设计管理系统运行实例555.1 系主任(教师)主界面555.2 系主任分配人数界面555.3 教师发布选题界面565.4 答辩教师分组界面565.5 答辩学生分组界面565.6 答辩学生转组界面575.7 分配评阅教师界面57第六章 总结和展望59致谢60参考文献61附录一 部分源程序代码63附录二 文献综述64附录三 外文翻译68附录四 开题报告80- 31 -浙江理工大学本科毕业论文第
5、一章 绪论本章对系统的研究背景、意义、现状、研究内容进行了阐述,重点叙述了作者的研究内容和所做的主要工作。1.1 背景与意义此次毕业设计的选题是由我校计算机学院统一选题。本次的毕业设计是一个可以充分地锻炼自己的动手实践能力以及考核四年大学所学知识的积累的机会。针对我的实际情况,结合四年来对计算机软件的熟练程度以及对数据库的了解,经过与指导老师以及小组成员的协商,我选择了药品管理系统软件设计与开发这个课题。这是一个属于实际的课题,如果顺利,我们所设计的药品管理系统将实际应用到中国最广大的售药系统中去,对于初涉社会的我们来说,无疑是一个非常好地锻炼机会。此次毕业设计选题范围是相当广泛且实用的,含盖
6、了目前大部分计算机软件类开发的课题,给我们很大的自由发展的空间。可以每个学生挑选出最合适的课题,更适合同学们的兴趣和价值取向。选择此课题对我来说有着不同的意义,应该来说此课题更接近于实际开发的全过程。同时对编程、数据库调用、结构化查询语言等方面是一个比较综合的考验。让我在此过程中得到很好的锻炼。 1.2 国内外相关研究现状及分析随着医疗制度改革的进行,药品招标采购的逐年规范和扩大,药品管理已经成为药剂科乃至整个医院管理的重要内容。传统的管理模式已经跟不上顾客对快节奏生活的要求了!随着计算机的普及和计算机软件的不断发展,越来越多的医疗机构开始注视计算机这个辅助工具为自己带来的效益了。医院的售药机
7、构需要通过计算机提高自已工作效率、对药品实现进销存管理和职工管理,提高经济效益 本次毕业设计我们秉承良好的治学之风,除了严格按照毕业设计进度表来安排我的设计情况,同时加强我与指导李老师联系和交流。同时这是一个面向实际应用的课题,和基础调研更是尤为显得重要,最终能够成为一个成功的案例而努力。1.3 研究内容及本文结构本文针对现实中毕业设计多采用人工方式,工作量大和效率低下的问题,以及各类教务管理系统在毕业设计管理方面功能的不足,结合我校实际情况主要做了以下工作:在毕业设计管理系统方面,本文提出了一种网上选题系统,,它改变了传统以班级为单位的手工选课的方式, 而采用网上报题、网上选题的方式, 极大
8、地方便了学生和指导老师, 显著地提高了工作效率。对毕业设计的各个环节进行了彻底的分析和研究,从选题、选题、论文、答辩到评分,详细叙述了各个环节的流程和解决方案,基于实际系统设计了数据库,并首次采用了模板预设方式进行评语编写,提供了报表输出等个性化功能。在开发语言和框架方面,本系统采用了跨平台的JAVA程序设计语言,并且在软件工程高内聚,低耦合和面向对象设计模式思想的指导下,深入学习贯彻软件工程与面向对象程序设计的模块化思想,学习设计模式的有关理论,并进行系统实践,深入探索JAVA开源框架,并寻找大量有关材料,对Struts + Spring + Hibernate 进行了组合,通过对这三个框架
9、的组合开发进行了探索和研究,解决了大量的三框架组合是所遇到的问题,并成功将其应用到了毕业设计管理系统上。在新技术方面,本系统采用了AJAX技术,使用在JAVA开发平台下优秀的DWR(Direct Web Remoting) AJAX框架实现。AJAX在系统的许多方面得到应用尤其是动态级联,表单验证,局部刷新,无页面刷新删除等等。本文以面向对象软件开发的过程为主线,对毕业设计管理系统进行了分析、设计和实现,并展示了最终的成果:第一章 介绍了对系统的研究背景和目的、研究现状和内容进行了阐述,重点叙述了作者的研究内容和所做的主要工作。第二章 介绍了毕业设计管理系统的设计目标,重点强调了该系统的功能需
10、求,并对系统进行了可行性分析,根据需求分析设计了系统的总体功能模块,并指出了系统的业务流程,设计了系统的体系结构。第三章 对毕业设计管理系统模块进行了详细分析和设计,包括教师前台模块,学生前台模块,管理员后台模块。根据体系结构设计了系统的包结构并描述了各个包的内容和作用。设计了毕业设计管理系统的用力实现,描述了各个系统内部各个对象间的调用顺序。对毕业设计管理系统的数据库进行了设计,给出了实体关系图和关键数据表。第四章 介绍了毕业设计管理系统实现的关键算法,主要技术,包括学生分组算发,评分自动拆分填充,AJAX级联,模板填写技术,PDF表单技术的展示和系统开发关工具、开发环境和开发语言。第五章
11、主要展示了毕业设计管理系统的最终成果,介绍了系统核心功能和流程的界面。第六章 对毕业设计进行了总结,叙述了毕业设计当中遇到的主要问题和解决途径,并对后续工作进行了展望。第二章 毕业设计管理系统总体分析与设计本章首先介绍了毕业设计管理系统的设计目标,重点强调了该系统的功能需求,并对系统进行了可行性分析,根据需求分析设计了系统的总体功能模块,并指出了系统的业务流程,设计了系统的体系结构。2.1 毕业设计管理系统设计目标药品管理系统是为了加强药品管理,以便更好地对药品进行监督和管理,对售药机构人员的工作,起到了高效性、准确性管理而开发。本系统主要包含系统用户管理模块、药品管理模块、销售管理模块、进货
12、管理模块、存货转移管理模块。药品管理系统是以合理、全面、准确的药品编码体系为基础,提供了对药品数量、金额、有效期的全面管理,统一的药价管理机制规范了药品的价格。系统能随时提供药库的库存、药品流向和消耗,还能根据现有库存,药品有效期提供采购计划或应暂停采购的药品清单,以提高资金的利用率,避免不必要的损失,方便快捷的途径对药基本信息进行定期的更新和删除等管理。2.2 毕业设计管理系统功能需求分析一 功能划分 药品管理系统分为系统用户管理、药品销售管理、药品库存管理、进货管理、职工管理、查询与报表分析。 二 功能描述 (1)系统用户管理:允许添加删除用户(只有管理员才可以修改),任意权限的用户允许更
13、改自己的密码,添加或删除职工,修改职工,对药品进行销售和库存的控制的资料。 (2) 药品进货管理:当企业需要增加新的销售药品时,利用此模块可以添加新的药品信息,删除旧的药品信息,修改已存在的药品信息,提供所有与药品相关的各类信息,初始化库存,初始化供应商相关信息。 (3)药品销售管理:药品统一的价格销售,对已查询销售单,可以对药品的价格进行控制。 (4)库存转移管理:实际生活中容易发生药品过期和损毁,此时利用此模块对过期的药品和损毁的药品进行清理。 (6)职工管理: 对药品企业进行职工的管理,对职工进行增加,修改,删除,查询等操作。 (7)查询与报表分析:此功能并未单独作为一个模块,而是分布在
14、各个模块中,各个模块产生业务时,可以在各模块的相应功能按钮上选择查询。2.3 性能需求 为了保证系统能够长期、安全、稳定、可靠、高效的运行,药品管理系统应该满足以下的性能需求: 1、系统处理的准确性和及时性 系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足学校对信息处理的需求。 2、系统的开放性和系统的可扩充性 药品管理系统在开发过程中,应该充分考虑以后的可扩充性。例如用户查询的需求也会不断的更新和完善。所有这些,都要求系统提供足够的手段进行功能的调整和扩充。而要实现这一点,应通过系统的开放性来完成,
15、既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。通过软件的修补、替换完成系统的升级和更新换代。 3、系统的易用性和易维护性 图书管理系统是直接面对使用人员的,而使用人员往往对计算机并不时非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。 4、系统的标准性 系统在设计开发使用过程中都要涉及到很多计算机硬件、软件。所有这些都要符合主流国际、国家和行业标准。 5、系统的先进性 目前计算系统的技术发展
16、相当快,做为药品管理系统工程,在系统的生命周期尽量做到系统的先进,充分完成企业信息处理的要求而不至于落后。这一方面通过系统的开放性和可扩充性,不断改善系统的功能完成。另一方面,在系统设计和开发的过程中,应在考虑成本的基础上尽量采用当前主流并先进且有良好发展前途的产品。 6、系统的响应速度 药品管理系统系统在日常处理中的响应速度为秒级,达到实时要求,以及时反馈信息。在进行统计分析时,根据所需数据量的不同而从秒级到分钟级,原则是保证操作人员不会因为速度问题而影响工作效率。顾客药品管理系统管理员2.2.4 毕业设计管理系统活动图图18. 药品管理系统基本流程图19.药品管理系统模块图图19.药品管理
17、系统功能图2.2.6 系统处理流程图用户通过登陆界面登陆系统时,第一次使用系统时需要进行药品的创始,即将各个药品的详细信息依次录入系统,第一次使用系统时同样要初始化库存,将现有的药品情况录入系统,接下来通过进货模块进行进货,进货时要为每一个供应商进行供应商创始,当发生销售时销售药品,并对库存进行相应的出来,退出.2.5.2总体业务流程本文研究探索了毕业设计管理系统的开发,基于浙江理工大学经济管理学院毕业设计的真实世界,对系统需求进行了分析,制定了相应的模块。图21是毕业设计管理系统的核心业务流程。图21.系统总体流程图2.6 毕业设计管理系统开发系统结构设计第三章 毕业设计管理系统详细分析与设
18、计本章对毕业设计管理系统模块进行了详细分析和设计,包括教师前台模块,学生前台模块,管理员后台模块。根据体系结构设计了系统的包结构并描述了各个包的内容和作用。设计了毕业设计管理系统的用力实现,描述了各个系统内部各个对象间的调用顺序。对毕业设计管理系统的数据库进行了设计,给出了实体关系图和关键数据表。3.1 毕业设计管理系统模块的详细分析与设计3.1.5 系统包结构图在创建所有序列图之后,一个完整的类列表就产生了,这些类被分组在6个包里。包图展示了系统中各个包的相互依赖情况。图40是系统的包结构图。:图40. 系统包结构图表3展示了系统各个包的作用。表3. 系统包作用表包名作用pojo包含系统所有
19、的实体类的javabean类,每个类都有自己的属性和setter、getter方法util包含系统中所有的实用工具类,包括邮件发送,报表生成,分组算法等类filter包含系统所有的过滤器包括字符过滤器和权限过滤器等dwr包含系统中为实现AJAX业务逻辑而编写的实现类action包含系统中所有的控制器类,主要是对系统的请求进行控制和转发并进行业务逻辑的调用dao包含了封装数据库进行增删改等操作的数据访问对象类3.1.6 系统类图类图展示了系统中各个类的情况,类图通过上述不同的包进行描述,系统中的类结构图如下:(1)util 包类图util包包含系统中所有的实用工具类,包括邮件发送,报表生成,分组
20、算法等类,图41是util包的类图。图41 util包类图(2)dao 包类图DAO包包含了封装数据库进行增删改等操作的数据访问对象类,图42是DAO包的类图。图42. DAO包类图(3)filter 包类图filter包包含系统的字符过滤器和权限过滤器等,图43是filter包的类结构图。图43. filter包类图(4)action 包类图action包包含系统中所有的控制器类,主要是对系统的请求进行控制和转发并进行业务逻辑的调用,图44是action包的类结构图。图44action包类图(5)dwr 包类图dwr包包含系统中为实现AJAX业务逻辑而编写的实现类,图45是dwr包的类结构图
21、。图45. dwr包类图3.1.6 类描述类图很好的展示了系统中各个类的情况,但是只从类图很难看出类的作用,下面给出系统中关键类描述。表4. util包类描述类名描述PingYuUtil评语工具类,调用iText组件包用于填充PDF表单,生成评分表PDF文件GroupUtil分组工具类,用于通过年级和专业对学生进行分组MailUtil邮件工具类,调用JavaMail组件包的有关组件,用于系统中邮件的发送ReportUtil报表工具类,调用POI组件包,用于生成相应的Excel报表表5. filter包类描述类名描述StudentFilter学生权限过滤器,实现Filter接口,用于过滤请求对象
22、,禁止非学生对象访问/student的资源TeacherFilter教师权限过滤器,实现Filter接口,用于过滤请求对象,禁止非教师对象访问/teacher的资源AdministratorFilter管理员权限过滤器,实现Filter接口,用于过滤请求对象,禁止非管理员对象访问/admin的资源SetCharacterEncodingFilter字符编码过滤器,实现Filter接口,用于将客户端的请求编码统一转换成UTF-8编码表6. dao包类描述类名描述*DAO数据访问对象类,*代表相应的实体对象,对客户封装了数据库的访问操作,实现相应实体的增删改查操作表7. action包类描述类名描
23、述AssignNumberAction分配人数控制器类,处理系主任分配人数的各式请求,执行业务逻辑操作,把数据模型派发到视图中ReleaseSubjectAction发布选题控制器类,处理教师发布选题的各式请求,执行业务逻辑操作,把数据派发到视图中SelectGuideTeacherAction学生选择导师控制器类,处理学生选择导师的各式请求,执行业务逻辑操作,把数据模型派发到视图中SelectGuideStudentAction导师选择学生控制器类,处理导师选择学生的各式请求,执行业务逻辑操作,把数据模型派发到视图中AdjustSelectAction调剂学生控制器类,处理系主任调剂学生的各
24、式请求,执行业务逻辑操作,把数据模型派发到视图中ThesisTitleAction审阅毕业论文题目控制器类,处理教师审阅学生毕业论文题目的各式请求,执行业务逻辑操作,把数据模型派发到视图中UploadThesisAction学生上传毕业论文控制器类,处理学生上传毕业论文的各式请供求,并把文件以规范的名字存储,把数据模型派发到视图中ApproveThesisAction审阅毕业论文控制器类,处理教师审阅学生毕业论文的各式请求,执行业务逻辑操作,把数据模型派发到视图中AnswerGroupTeacherAction答辩教师分组控制器类,处理系对答辩教师进行分组的各式请求,执行业务逻辑操作,把数据模
25、型派发到视图中AnswerStudentGroupAction答辩学生分组控制器类,处理系主任对学生进行答辩分组的各式请求,执行业务逻辑操作,把数据模型派发到视图中ChangeAnswerStudentGroupAction答辩学生转组控制器类,处理系主任对答辩学生进行转组的各式请求,执行业务逻辑操作,把数据模型片派发到视图中AssignReadTeacherAction分配评阅教师控制器类,处理系主任分配评阅教师的各式请求,执行业务逻辑操作,把数据模型派发到视图中FileDownloadAction文件下载控制器类,处理客户的下载请求,负责创建或查找请求的资源,并返回给客户端GuideTea
26、cherPingYuAction指导教师评分控制器类,处理指导教师评分的各式请求,执行业务逻辑操作,把数据模型跑派发到视图中ReportAction报表控制器类,出来客户端对打印和输出报表的各式请求,执行业务逻辑操作,把数据模型跑派发到视图中*Action实体控制器类,*代表系统内各个实体,处理管理员管理各实体的增删改查请的供求表8. dwr包类描述类名描述ApproveThesisDWR审阅论文AJAX业务逻辑类,处理客户端审阅论文操作的AJAX调用请求,执行业务逻辑,返回模型数据AssignReadTeacherDWR分配评阅教师AJAX业务逻辑类,处理客户端分配评阅教师操作的AJAX调用
27、请求,执行业务逻辑,返回模型数据AssignNumberDWR分配教师可带人数AJAX业务逻辑类,处理客户端分配教师可带人数操作的AJAX调用请求,执行业务逻辑,返回模型数据ChangeAnswerStudentGroupDWR答辩学生转组AJAX业务逻辑类,处理客户端答辩学生转组操作的AJAX调用请求,执行业务逻辑,返回模型数据PingYuDWR教师评语AJAX业务逻辑类,处理客户端评语操作的AJAX调用请求,执行业务逻辑,返回模型数据ManageDWR管理员管理基础数据AJAX业务逻辑类,处理客户端管理基础数据操作的AJAX调用请求,执行业务逻辑,返回模型数据3.2 毕业设计管理系统数据库
28、设计本节描述了毕业设计管理系统的数据库设计,主要是毕业设计管理系统的实体关系图和关键表。3.2.1 毕业设计管理系统数据库实体关系图实体关系图从内部描述了信息系统的数据结构,图46是毕业设计管理系统的数据库实体关系图。图46系统数据库实体关系图3.2.1 毕业设计管理系统关键数据表针对每个实体在数据库中都会存在相对应的表,下面给出毕业设计管理系统的关键数据表:表9. 教师表(表名:teacher) 字段名说明类型长度能否为空teacher_id自增主键int否teacher_sex性别varchar50teacher_diploma学历varchar50teacher_degree学位varc
29、har50teacher_title职称varchar50teacher_graduate_major毕业专业varchar50teacher_graduate_school毕业学校varchar50teacher_phone老师电话varchar50teacher_mobile老师手机varchar50teacher_email老师邮箱varchar50teacher_username用户名varchar50否teacher_password密码varchar50否teacher_name姓名varchar50teacher_introduce简介textrole_id角色int表10. 学
30、生表(表名:student)列名说明索引等数据类型长度能否为空student_id自增主键主键int否student _num学号varchar50否student_password密码varchar50否student_name姓名varchar50否classmate_id班级(外键)int否student _phone电话varchar50student _mobile手机varchar50student _email邮箱varchar50student _sex性别varchar50student _t1选择教师1varchar50student _t2选择教师2varchar50st
31、udent _t3选择教师3varchar50teacher_id指导教师(外键)intteacher_selected默认为0双向选择为1,系主任调节为2int表11 开题报告表(表名:thesis_proposal)列名说明索引等数据类型长度能否为空thesis_proposal_id自增主键是int否thesis_proposal_title选题名称varchar100thesis_proposal_description开题报告简介textthesis_proposal_filename上传文件varchar50thesis_proposal_count上传数(默认为0)intstud
32、ent_id学生(外键)intapprove未审阅默认00已审阅未通过01已审阅已通过11修改过(0/1)int表12. 开题报告上传记录表(表名:thesis_proposal_upload)列名说明索引等数据类型长度能否为空thesis_proposal_upload_id自增主键是int否thesis_proposal_time上传时间datetime100thesis_proposal_id开题报告(外键)int表13. 答辩组信息表(表名:answer_group)列名说明索引等数据类型长度能否为空answer_group_id自增主键是int否answer_group _name答
33、辩组组名varchar50answer_group _room答辩地方varchar50answer_group _leader_id答辩组长(外键)intgrade_id年级(外键)int表14. 学生答辩信息表(表名:student_answer)列名说明索引等数据类型长度能否为空student_answer_id自增主键是int否answer_group _id答辩组(外键)int50student_id学生(外键)int50change_group _id修改学生答辩组操作人员intRead_teacher_id评阅老师(外键)intguide_score1指导老师打分(文献综述)in
34、tguide_score2指导老师打分(毕业社设计)intguide_score3指导老师打分(工作表现)intguide_score4指导老师打分(其他)intguide_score_sum指导老师打分(总分)intread_score1评阅老师打分(选题)intread_score2评阅老师打分(文献综述)intread_score3评阅老师打分(外文翻译)intread_score4评阅老师打分(毕业设计)intread_score_sum评阅老师打分(合计分数)intanswer_score1答辩小组打分(毕业设计)intanswer_score1答辩小组打分(答辩情况)intansw
35、er_score_sum答辩小组打分(合计分数)intscore_sum论文总分intguide_comment指导老师评语textanswer_comment答辩组评语textguide_date指导老师查看日期datetimeread_date评阅日期datetimeanswer_date答辩组答辩日期datetimeanswer_change_id改变学生答辩组的教师int第四章 毕业设计管理系统实现本章主要介绍了毕业设计管理系统实现的关键算法,主要技术,包括学生分组算发,评分自动拆分填充,AJAX级联,模板填写技术,PDF表单技术的展示和系统开发关工具、开发环境和开发语言。4.1 分组
36、算法的实现在毕业设计答辩过程中,每个学生都会对应一个答辩组,该生的导师所在的组不能成为学生的答辩组,同时每个答辩组的学生数目应保持基本均衡不能相差悬殊。为了满足实际需要,设计了分组算法,该算法实现了分组平均分配,排除重复的效果,图47是学生分组的分组算法程序结构图,程序是具体的代码实现图47. 分组算法程序结构图程序1.分组算法代码:算法:分组输入:年级编码,专业编码,教师输出:学生分组GroupUtilpublic class GroupUtil static GradeDAO gradeDAO;static MajorDAO majorDAO;public static void grou
37、p(String gradeId, String majorId, Teacher teacher)final Teacher t = teacher;final Grade grade = gradeDAO.findById(Integer.parseInt(gradeId);final Major major = majorDAO.findById(Integer.parseInt(majorId);/查找出该年级该专业的所有班级List classmateList = (List) gradeDAO.getHibernateTemplate().execute(new Hibernate
38、Callback() public Object doInHibernate(Session session)throws HibernateException Query query = session.createQuery(from Classmate classmate where classmate.major = ? and classmate.grade = ?);query.setEntity(0, major);query.setEntity(1, grade);return query.list(););for(Classmate classmate:(List ) cla
39、ssmateList)classmate.setHasGroup(y);gradeDAO.getHibernateTemplate().saveOrUpdate(classmate);List studentList = (List) gradeDAO.getHibernateTemplate().execute(new HibernateCallback() public Object doInHibernate(Session session)throws HibernateException Query query = session.createQuery(from Student s
40、tudent where student.classmate in (from Classmate classmate where classmate.major = ? and classmate.grade = ?);query.setEntity(0, major);query.setEntity(1, grade);return query.list(););List answerGroupList = (List) gradeDAO.getHibernateTemplate().execute(new HibernateCallback() public Object doInHib
41、ernate(Session session)throws HibernateException Query query = session.createQuery(from AnswerGroup answerGroup where answerGroup.department = ? and answerGroup.grade = ?);query.setEntity(0, t.getDepartment();query.setEntity(1, grade);return query.list(););int i = 0;for (Student student : (List) stu
42、dentList) if (i answerGroupList.size() System.out.println(i);if (student.getStudentAnswer() = null) StudentAnswer studentAnswer = new StudentAnswer();studentAnswer.setStudent(student);gradeDAO.getHibernateTemplate().save(studentAnswer);student.setStudentAnswer(studentAnswer);AnswerGroup answerGroup
43、= (AnswerGroup) answerGroupList.get(i);List tList = gradeDAO.getHibernateTemplate().find(select t from Teacher t inner join t.teacherGroups tg where tg.answerGroup =?,answerGroup);if (tList.contains(student.getTeacherByGuideTeacherId() i+;if (i answerGroupList.size()student.getStudentAnswer().setAnswerGroup(