• 1.95 MB
  • 20页

学生选课系统设计与开发项目报告

  • 20页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'滨州学院计算机科学技术系《JavaEE框架技术》项目报告题目学生选课系统姓名曹胜欢学号1023110901专业软件技术班级软件二班2012年6月15日 一、功能要求1.*用户登录2.*查看个人信息3.*修改个人信息4.*查看个人选课情况5.*查看所有课程信息,能够选定课程6.*退选课程7.DIV+CSS美化页面8.添加查询功能:如根据课程名进行模糊查询,课程开课学期进行查询9.国际化处理10.添加分页功能其中标*者为必做功能,其他为可选功能。二、项目规范1.项目名称:StudentCourse<学号>,中间不要加空格或其他字符,如:StudentCourse10231109352.访问路径与项目名相同,如:http://localhost:8080/StudentCourse1023110935/3.包命名规范studentcourse.entity实体类studentcourse.biz业务逻辑接口类studentcourse.biz.impl业务逻辑实现类studentcourse.daoDAO接口类studentcourse.dao.implDAO实现类studentcourse.web.action各个Action类4.尽量书写必要的文档和注释 一、开发流程1.面向对象分析和设计UML建模如下图所示:2.给项目添加Hibernate支持,建立实体类及其所对应的映射文件说明:你也可以选择先完成数据库的设计,再反向工程生成对应的实体类及其映射文件3.DAO层的设计与实现3.1通用数据库访问类HibernateUtil方法名功能描述add添加对象delete删除对象Update更新对象Select查询对象Check验证登陆信息selectPage分页查询 /****@author曹胜欢**/publicclassHibernateUtil{privateHibernateUtil(){}privatestaticSessionFactorysessionFactory;publicSessionFactorygetSessionFactory(){returnsessionFactory;}publicvoidsetSessionFactory(SessionFactorysessionFactory){this.sessionFactory=sessionFactory;}//得到sessionpublicstaticSessiongetSession(){returnsessionFactory.openSession();}//增加操作publicstaticbooleanadd(Objectentity){Sessions=null;Transactiontran=null;booleantemp=false;try{s=HibernateUtil.getSession();tran=s.beginTransaction();s.save(entity);tran.commit();temp=true;}catch(Exceptione){e.printStackTrace();tran.rollback();}returntemp;}代码: //删除操作publicstaticbooleandelete(Objectentity){Sessions=null;Transactiontran=null;booleantemp=false;try{s=HibernateUtil.getSession();tran=s.beginTransaction();System.out.println(entity==null);s.delete(entity);tran.commit();temp=true;}catch(Exceptione){e.printStackTrace();tran.rollback();}returntemp;}//更新操作publicstaticbooleanupdate(Objectentity){Sessions=null;Transactiontran=null;booleantemp=false;try{s=HibernateUtil.getSession();tran=s.beginTransaction();s.merge(entity);tran.commit();temp=true;}catch(Exceptione){tran.rollback();e.printStackTrace();}returntemp;}3.2StudentDAO接口方法名功能描述 checkStu判断所要添加的学号是否存在exists获得对应的页码的数据集合pageList获得对应id的学生对象getStu修改学生信息update删除学生delete添加学生3.3StudentDAOImpl实现类:方法名功能描述checkStu判断所要添加的学号是否存在exists获得对应的页码的数据集合pageList获得对应id的学生对象getStu修改学生信息update删除学生delete添加学生3.4CourseDAO接口方法名功能描述pageList获得分页查询的当前页的结果getCour获得对应id的课程对象getCourse获得学生的选课的集合delete删除课程updateCour修改课程信息addCour添加课程3.5CourseDAOImpl实现类:方法名功能描述pageList获得分页查询的当前页的结果getCour获得对应id的课程对象getCourse获得学生的选课的集合delete删除课程updateCour修改课程信息addCour添加课程3.6AdminerDAO接口方法名功能描述checkAdminer验证登陆的管理员信息是否正确 exists判断添加的管理员的用户名是否存在addAdmin添加管理员getStu获得对应id的学生对象update更新管理员信息3.7AdminerDAOImpl实现类:方法名功能描述checkAdminer验证登陆的管理员信息是否正确exists判断添加的管理员的用户名是否存在addAdmin添加管理员getStu获得对应id的学生对象update更新管理员信息下面看一下具体的源码:StudentDao.java/****@author曹胜欢**/publicclassStudentDaoimplementsStudentDaoInter{publicStudentcheckStu(Studentstu){Objectobj=HibernateUtil.check("fromStudentswheres.idCard=?ands.password=?",newString[]{stu.getIdCard(),stu.getPassword()});returnobj!=null?(Student)obj:null;}publicbooleanexists(StringidCard){Objectobj=HibernateUtil.check("fromStudentawherea.idCard=?",newString[]{idCard});returnobj==null?false:true;}AdminerDao.java publicclassAdminerDaoimplementsAdminDaoInter{publicAdminercheckAdminer(Admineradmin){Objectobj=HibernateUtil.check("fromAdminerawherea.username=?anda.password=?",newString[]{admin.getUsername(),admin.getPassword()});returnobj!=null?(Adminer)obj:null;}publicbooleanexists(Stringusername){Objectobj=HibernateUtil.check("fromAdminerawherea.username=?",newString[]{username});returnobj==null?false:true;}/*(non-Javadoc)*@seecom.bzu.dao.impl.AdminDaoInter#addAdmin(java.lang.Object)*/publicbooleanaddAdmin(Objectentity){returnHibernateUtil.add(entity);}4.添加项目支持四、项目模块介绍1.前台模块主要功能:1.1学生登陆1.2个人信息管理 1.2.1:个人信息显示1.2.2:个人信息修改1.3选课信息管理1.3.1已选课程列表1.4课表信息管理1.4.1课表显示1.1学生登陆页面:代码:页面显示: 1.2.1个人信息显示:代码:页面显示:1.2.2修改个人信息代码: 页面显示1.3.1已选课程列表代码: 页面显示:1.4.1课程列表显示代码: 页面显示:总体功能说明:1. 学生登陆功能,如果用户名和密码不正确可以给用户在页面有好提示1.学生信息列表功能可以显示出当前登录学生的基本信息2.学生信息修改功能可以修改当前登录学生的信息3.已选课程显示功能可以显示当前登录学生所选课程4.在已选课程列表中可以进行退选5.课程列表功能可以显示出当前所有课程的列表6.在课程列表中可以进行选课7.在课程列表中支持模糊查询和分页功能整体页面显示: 2后台管理模块2.1管理员登录功能2.2管理员信息显示2.3添加管理员:这里用到了ajax异步验证技术来验证用户名是否存在2.4更新管理员信息2.5学生列表2.6学生添加2.7课程列表2.8课程添加主要代码示例:Ajax异步验证主要代码:课程列表 更新管理员信息主要页面显示: 添加管理员学生列表添加学生 利用模式窗口形式修改学生信息总体后台页面显示 最后一个功能就是在用户首页,用户可以选择是按管理员登陆还是学生登陆:如下图 主要遇到的问题:1.在利用乐观锁来解决事务并发所带来的并发问题时,配置了乐观锁以后,更新学生信息的时候提示另一个事务正在读取这个对象,报错异常解决办法:去掉乐观锁,不让他限制事务的并发2.加载页面列表信息时,页面加载缓慢,甚至有时页面加载不出来,导致服务器死掉。解决办法:配置二级缓存,一次加载数据信息的时候,以后再加载数据信息,不需要再去数据库里面去找,直接去二级缓存里找,大大提高了查询速度。'