收藏 分销(赏)

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

上传人:丰**** 文档编号:4681639 上传时间:2024-10-09 格式:DOC 页数:21 大小:2.01MB 下载积分:10 金币
下载 相关 举报
学生选课系统设计与开发项目报告.doc_第1页
第1页 / 共21页
学生选课系统设计与开发项目报告.doc_第2页
第2页 / 共21页


点击查看更多>>
资源描述
山东科技职业学院信息工程系 《SSH框架技术》项目报告 题目 酒吧管理系统 姓名 赵江鹏 陈飞呈 郑宝山 崔铭亮 专业 软件技术(服务外包) 2012年6月15日 一、 功能要求 1. *用户登录 2. *查看个人信息 3. *修改个人信息 4. *查看个人选课情况 5. *查看所有课程信息,能够选定课程 6. *退选课程 7. DIV+CSS美化页面 8. 添加查询功能:如根据课程名进行模糊查询,课程开课学期进行查询 9. 国际化处理 10. 添加分页功能 其中标*者为必做功能,其他为可选功能。 二、 项目规范 1. 项目名称:StudentCourse<学号>,中间不要加空格或其他字符,如:StudentCourse1023110935 2. 访问路径与项目名相同,如:http://localhost:8080/StudentCourse1023110935/ 3. 包命名规范 studentcourse.entity 实体类 studentcourse.biz 业务逻辑接口类 studentcourse.biz.impl 业务逻辑实现类 studentcourse.dao DAO接口类 studentcourse.dao.impl DAO实现类 studentcourse.web.action 各个Action类 4. 尽量书写必要的文档和注释 三、 开发流程 1.面向对象分析和设计 UML建模如下图所示: 2.给项目添加Hibernate支持,建立实体类及其所对应的映射文件 说明:你也可以选择先完成数据库的设计,再反向工程生成对应的实体类及其映射文件 3.DAO层的设计与实现 3.1通用数据库访问类HibernateUtil 方法名 功能描述 add 添加对象 delete 删除对象 Update 更新对象 Select 查询对象 Check 验证登陆信息 selectPage 分页查询 /** * * @author 曹胜欢 * */ public class HibernateUtil { private HibernateUtil() { } private static SessionFactory sessionFactory; public SessionFactory getSessionFactory() { return sessionFactory; } public void setSessionFactory(SessionFactory sessionFactory) { this.sessionFactory = sessionFactory; } // 得到session public static Session getSession() { return sessionFactory.openSession(); } // 增加操作 public static boolean add(Object entity) { Session s = null; Transaction tran = null; boolean temp = false; try { s = HibernateUtil.getSession(); tran = s.beginTransaction(); s.save(entity); mit(); temp = true; } catch (Exception e) { e.printStackTrace(); tran.rollback(); } return temp; } 代码: // 删除操作 public static boolean delete(Object entity) { Session s = null; Transaction tran = null; boolean temp = false; try { s = HibernateUtil.getSession(); tran = s.beginTransaction(); System.out.println(entity == null); s.delete(entity); mit(); temp = true; } catch (Exception e) { e.printStackTrace(); tran.rollback(); } return temp; } // 更新操作 public static boolean update(Object entity) { Session s = null; Transaction tran = null; boolean temp = false; try { s = HibernateUtil.getSession(); tran = s.beginTransaction(); s.merge(entity); mit(); temp = true; } catch (Exception e) { tran.rollback(); e.printStackTrace(); } return temp; } 3.2 StudentDAO接口 方法名 功能描述 checkStu 判断所要添加的学号是否存在 exists 获得对应的页码的数据集合 pageList 获得对应id的学生对象 getStu 修改学生信息 update 删除学生 delete 添加学生 3.3 StudentDAOImpl实现类: 方法名 功能描述 checkStu 判断所要添加的学号是否存在 exists 获得对应的页码的数据集合 pageList 获得对应id的学生对象 getStu 修改学生信息 update 删除学生 delete 添加学生 3.4CourseDAO接口 方法名 功能描述 pageList 获得分页查询的当前页的结果 getCour 获得对应id的课程对象 getCourse 获得学生的选课的集合 delete 删除课程 updateCour 修改课程信息 addCour 添加课程 3.5 CourseDAOImpl实现类: 方法名 功能描述 pageList 获得分页查询的当前页的结果 getCour 获得对应id的课程对象 getCourse 获得学生的选课的集合 delete 删除课程 updateCour 修改课程信息 addCour 添加课程 3.6AdminerDAO接口 方法名 功能描述 checkAdminer 验证登陆的管理员信息是否正确 exists 判断添加的管理员的用户名是否存在 addAdmin 添加管理员 getStu 获得对应id的学生对象 update 更新管理员信息 3.7 AdminerDAOImpl实现类: 方法名 功能描述 checkAdminer 验证登陆的管理员信息是否正确 exists 判断添加的管理员的用户名是否存在 addAdmin 添加管理员 getStu 获得对应id的学生对象 update 更新管理员信息 下面看一下具体的源码: StudentDao.java /** * * @author 曹胜欢 * */ public class StudentDao implements StudentDaoInter { public Student checkStu(Student stu) { Object obj = HibernateUtil.check( "from Student s where s.idCard=? and s.password=? ", new String[] { stu.getIdCard(), stu.getPassword() }); return obj != null ? (Student) obj : null; } public boolean exists(String idCard){ Object obj=HibernateUtil.check("from Student a where a.idCard=? " , new String[]{idCard}); return obj==null?false:true; } AdminerDao.java public class AdminerDao implements AdminDaoInter { public Adminer checkAdminer(Adminer admin) { Object obj=HibernateUtil.check("from Adminer a where a.username=? and a.password=? " , new String[]{admin.getUsername(),admin.getPassword()}); return obj!=null?(Adminer)obj:null; } public boolean exists(String username){ Object obj=HibernateUtil.check("from Adminer a where a.username=? " , new String[]{username}); return obj==null?false:true; } /* (non-Javadoc) * @see com.bzu.dao.impl.AdminDaoInter#addAdmin(java.lang.Object) */ public boolean addAdmin(Object entity) { return HibernateUtil.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. 学生登陆功能,如果用户名和密码不正确可以给用户在页面有好提示 2. 学生信息列表功能可以显示出当前登录学生的基本信息 3. 学生信息修改功能可以修改当前登录学生的信息 4. 已选课程显示功能可以显示当前登录学生所选课程 5. 在已选课程列表中可以进行退选 6. 课程列表功能可以显示出当前所有课程的列表 7. 在课程列表中可以进行选课 8. 在课程列表中支持模糊查询和分页功能 整体页面显示: 2后台管理模块 2.1管理员登录功能 2.2管理员信息显示 2.3添加管理员:这里用到了ajax异步验证技术来验证用户名是否存在 2.4更新管理员信息 2.5学生列表 2.6学生添加 2.7课程列表 2.8课程添加 主要代码示例: Ajax异步验证主要代码: 课程列表 更新管理员信息 主要页面显示: 添加管理员 学生列表 添加学生 利用模式窗口形式修改学生信息 总体后台页面显示 最后一个功能就是在用户首页,用户可以选择是按管理员登陆还是学生登陆:如下图 主要遇到的问题: 1. 在利用乐观锁来解决事务并发所带来的并发问题时,配置了乐观锁以后,更新学生信息的时候提示另一个事务正在读取这个对象,报错异常 解决办法:去掉乐观锁,不让他限制事务的并发 2. 加载页面列表信息时,页面加载缓慢,甚至有时页面加载不出来,导致服务器死掉。 解决办法:配置二级缓存,一次加载数据信息的时候,以后再加载数据信息,不需要再去数据库里面去找,直接去二级缓存里找,大大提高了查询速度。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服