1、学生选课系统设计与开发项目报告山东科技职业学院信息工程系SSH框架技术项目报告题目 酒吧管理系统 姓名 赵江鹏 陈飞呈 郑宝山 崔铭亮 专业 软件技术(服务外包) 2012年6月15日一、 功能要求1. *用户登录2. *查看个人信息3. *修改个人信息4. *查看个人选课情况5. *查看所有课程信息,能够选定课程6. *退选课程7. DIV+CSS美化页面8. 添加查询功能:如根据课程名进行模糊查询,课程开课学期进行查询9. 国际化处理10. 添加分页功能其中标*者为必做功能,其他为可选功能。 二、 项目规范1. 项目名称:StudentCourse,中间不要加空格或其他字符,如:Stude
2、ntCourse10231109352. 访问路径与项目名相同,如: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建模如下图
3、所示:2.给项目添加Hibernate支持,建立实体类及其所对应的映射文件说明:你也可以选择先完成数据库的设计,再反向工程生成对应的实体类及其映射文件3.DAO层的设计与实现3.1通用数据库访问类HibernateUtil方法名功能描述add添加对象delete删除对象Update更新对象Select查询对象Check验证登陆信息selectPage分页查询/* * * author 曹胜欢 * */public class HibernateUtil private HibernateUtil() private static SessionFactory sessionFactory; p
4、ublic 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) Sessi
5、on 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 = n
6、ull; 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(Obj
7、ect 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
8、获得对应的页码的数据集合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.
9、5 CourseDAOImpl实现类:方法名功能描述pageList获得分页查询的当前页的结果getCour获得对应id的课程对象getCourse获得学生的选课的集合delete删除课程updateCour修改课程信息addCour添加课程3.6AdminerDAO接口方法名功能描述checkAdminer验证登陆的管理员信息是否正确exists 判断添加的管理员的用户名是否存在addAdmin添加管理员getStu获得对应id的学生对象update更新管理员信息3.7 AdminerDAOImpl实现类:方法名功能描述checkAdminer验证登陆的管理员信息是否正确exists 判断添
10、加的管理员的用户名是否存在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.getIdCar
11、d(), stu.getPassword() ); return obj != null ? (Student) obj : null; public boolean exists(String idCard) Object obj=HibernateUtil.check(from Student a where a.idCard=? , new StringidCard); return obj=null?false:true; AdminerDao.javapublic class AdminerDao implements AdminDaoInter public Adminer che
12、ckAdminer(Adminer admin) Object obj=HibernateUtil.check(from Adminer a where a.username=? and a.password=? , new Stringadmin.getUsername(),admin.getPassword(); return obj!=null?(Adminer)obj:null; public boolean exists(String username) Object obj=HibernateUtil.check(from Adminer a where a.username=?
13、, new Stringusername); 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.
14、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.在课程列表中支持模糊查询和分页功能整体页面显示
15、:2后台管理模块2.1管理员登录功能2.2管理员信息显示2.3添加管理员:这里用到了ajax异步验证技术来验证用户名是否存在2.4更新管理员信息2.5学生列表2.6学生添加2.7课程列表2.8课程添加主要代码示例:Ajax异步验证主要代码:课程列表更新管理员信息主要页面显示:添加管理员学生列表添加学生利用模式窗口形式修改学生信息总体后台页面显示最后一个功能就是在用户首页,用户可以选择是按管理员登陆还是学生登陆:如下图主要遇到的问题:1. 在利用乐观锁来解决事务并发所带来的并发问题时,配置了乐观锁以后,更新学生信息的时候提示另一个事务正在读取这个对象,报错异常解决办法:去掉乐观锁,不让他限制事务的并发2. 加载页面列表信息时,页面加载缓慢,甚至有时页面加载不出来,导致服务器死掉。解决办法:配置二级缓存,一次加载数据信息的时候,以后再加载数据信息,不需要再去数据库里面去找,直接去二级缓存里找,大大提高了查询速度。
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2