学生选课系统设计与开发项目报告.doc
《学生选课系统设计与开发项目报告.doc》由会员分享,可在线阅读,更多相关《学生选课系统设计与开发项目报告.doc(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. 加载页面列表信息时,页面加载缓慢,甚至有时页面加载不出来,导致服务器死掉。 解决办法:配置二级缓存,一次加载数据信息的时候,以后再加载数据信息,不需要再去数据库里面去找,直接去二级缓存里找,大大提高了查询速度。- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 选课 系统 设计 开发 项目 报告
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文