JavaWeb项目开发案例精粹-第3章在线考试系统-004Service层
1.
package com.sanqing.service;
import java.util.List;
import com.sanqing.po.Student;
public interface StudentService {
//判断是否为合法学生,从而决定是否允许登录
public boolean allowLogin(String studentID,String password);
//获得学生信息
public Student getStudentInfo(String studentID);
//设置学生成绩
public void setStudentResult(String studentID,int result);
//根据学生姓名查找学生
public List<Student> getStudentByName(String studentName);
//根据班级查找学生
public List<Student> getStudentByClass(String sclass);
}
2.
package com.sanqing.service; import java.util.List; import com.sanqing.dao.StudentDAO;
import com.sanqing.dao.StudentDAOImpl;
import com.sanqing.po.Student; public class StudentServiceImpl implements StudentService{
private StudentDAO studentDAO = new StudentDAOImpl(); public boolean allowLogin(String studentID, String password) { Student student = studentDAO.findByStudentID(studentID);
if(student == null) {//判断是否存在该ID的学生
return false;
}else {
if(password.equals(student.getPassword())) {//判断密码是否相同
return true;
}else{
return false;
} }
} public Student getStudentInfo(String studentID) {
return studentDAO.findByStudentID(studentID);
} public void setStudentResult(String studentID, int result) {
Student student = studentDAO.findByStudentID(studentID);//根据ID查找到该学生
student.setResult(result);//设置其成绩
studentDAO.updateStudent(student);//更新学生信息
} public List<Student> getStudentByName(String studentName) {
return studentDAO.findByStudentName(studentName);
} public List<Student> getStudentByClass(String sclass) {
return studentDAO.findByStudentClass(sclass);
}
}
3.
package com.sanqing.service; import java.util.List; import com.sanqing.po.Subject;
import com.sanqing.util.Page;
import com.sanqing.util.PageResult; public interface SubjectService {
// 添加试题,首先判断该试题标题是否已经存在,如果已经则不能添加
public boolean saveSubject(Subject subject);
// 按分页信息查询试题
public PageResult querySubjectByPage(Page page);
// 查看试题详细信息
public Subject showSubjectParticular(int subjectID);
// 更新试题信息
public void updateSubject(Subject subject);
// 删除试题信息
public void deleteSubject(int subjectID);
//模糊查询试题信息
public PageResult likeQueryBySubjectTitle(String subjectTitle,Page page);
//随机查询试题记录
public List<Subject> randomFindSubject(int number);
//计算学生得分
public int accountResult(List<Integer> subjectIDs,List<String> studentAnswers);
}
4.
package com.sanqing.service; import java.util.List; import com.sanqing.dao.SubjectDAO;
import com.sanqing.dao.SubjectDAOImpl;
import com.sanqing.po.Subject;
import com.sanqing.util.Page;
import com.sanqing.util.PageResult;
import com.sanqing.util.PageUtil; public class SubjectServiceImpl implements SubjectService{
private SubjectDAO subjectDAO = new SubjectDAOImpl(); public boolean saveSubject(Subject subject) {
String subjectTile = subject.getSubjectTitle();
if(subjectDAO.findSubjectByTitle(subjectTile) == null){ //如果该试题标题不存在,允许添加
subjectDAO.addSubject(subject);
return true;
}else {
return false;
}
} public PageResult querySubjectByPage(Page page) {
page = PageUtil.createPage(page.getEveryPage(),
subjectDAO.findSubjectCount(),page.getCurrentPage());//根据总记录数创建分页信息
List<Subject> list = subjectDAO.findSubjectByPage(page);//通过分页信息取得试题
PageResult result = new PageResult(page,list);//封装分页信息和记录信息,返回给调用处
return result;
} public Subject showSubjectParticular(int subjectID) {
return subjectDAO.findSubjectByID(subjectID);
} public void updateSubject(Subject subject) {
subjectDAO.updateSubject(subject);
} public void deleteSubject(int subjectID) {
subjectDAO.deleteSubject(subjectID);
} public PageResult likeQueryBySubjectTitle(String subjectTitle, Page page) {
page = PageUtil.createPage(page.getEveryPage(),
subjectDAO.findLinkQueryCount(subjectTitle),page.getCurrentPage());//根据总记录数创建分页信息
List<Subject> list = subjectDAO.likeQueryByTitle(subjectTitle, page);//通过分页信息模糊查询试题
PageResult result = new PageResult(page,list);//封装分页信息和记录信息,返回给调用处
return result;
} public List<Subject> randomFindSubject(int number) {
return subjectDAO.randomFindSubject(number);
} public int accountResult(List<Integer> subjectIDs,
List<String> studentAnswers) {
int GeneralPoint = 0;//总分
for(int i = 0; i < subjectIDs.size(); i++) {
String rightAnswer = subjectDAO.
findSubjectByID(subjectIDs.get(i)).getSubjectAnswer();//得到正确答案,通过试题ID
if(rightAnswer.equals(studentAnswers.get(i))) {
GeneralPoint += 5;//加5分
}
}
return GeneralPoint;
}
}
5.
package com.sanqing.service;
public interface TeacherService {
//判断是否为合法老师,从而决定是否允许登录
public boolean allowLogin(String teacherID,String password);
}
6.
package com.sanqing.service; import com.sanqing.dao.TeacherDAO;
import com.sanqing.dao.TeacherDAOImpl;
import com.sanqing.po.Teacher; public class TeacherServiceImpl implements TeacherService{
private TeacherDAO teacherDAO = new TeacherDAOImpl(); public boolean allowLogin(String teacherID, String password) {
Teacher teacher = teacherDAO.findByTeacherID(teacherID);
if(teacher == null) {//判断是否存在该ID的教师
return false;
}else {
if(password.equals(teacher.getPassword())) {//判断密码是否相同
return true;
}else{
return false;
}
}
}
}
JavaWeb项目开发案例精粹-第3章在线考试系统-004Service层的更多相关文章
- JavaWeb项目开发案例精粹-第3章在线考试系统-007View层
0.login.jsp <%@ page language="java" import="java.util.*" pageEncoding=" ...
- JavaWeb项目开发案例精粹-第3章在线考试系统-005action层
1. <?xml version="1.0" encoding="UTF-8" ?><!-- XML声明 --> <!DOCTYP ...
- JavaWeb项目开发案例精粹-第3章在线考试系统-003Dao层
1. package com.sanqing.dao; import java.util.List; import com.sanqing.po.Student; public interface S ...
- JavaWeb项目开发案例精粹-第3章在线考试系统-006实体层
1. package com.sanqing.po; /* * 学生表,保存学生编号,系统密码 */ public class Student { private String studentID; ...
- JavaWeb项目开发案例精粹-第3章在线考试系统-002配置文件及辅助类
1. <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5&qu ...
- JavaWeb项目开发案例精粹-第3章在线考试系统-001设计
1. 2. 3. 4. # MySQL-Front 5.0 (Build 1.0) /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE */; /*!40101 SET SQL ...
- JavaWeb项目开发案例精粹-第6章报价管理系统-05Action层
0. <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC &quo ...
- JavaWeb项目开发案例精粹-第6章报价管理系统-002辅助类及配置文件
1. <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www ...
- JavaWeb项目开发案例精粹-第2章投票系统-001设计
1.项目结构 2.数据库设计 # MySQL-Front 5.0 (Build 1.0) /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE */; /*!40101 SET ...
随机推荐
- phpExcel导出excel的类,每步都有说明
require_once WEB_PATH . '/lib/PHPExcel/PHPExcel.php'; require_once WEB_PATH . '/lib/PHPExcel/PHPExce ...
- How to modify Code Comments[AX2012]
// This is a framework class. Customizing this class may cause problems with future upgrades to the ...
- openerp学习笔记 计算字段、关联字段(7.0中非计算字段、关联字段只读时无法修改保存的问题暂未解决)
计算字段.关联字段,对象修改时自动变更保存(当 store=True 时),当 store=False 时,默认不支持过滤和分组7.0中非计算字段.关联字段只读时无法修改保存的问题暂未解决 示例代码: ...
- MySQL在ROW模式下通过binlog提取SQL语句
Linux基于row模式的binlog,生成DML(insert/update/delete)的rollback语句通过mysqlbinlog -v 解析binlog生成可读的sql文件提取需要处理的 ...
- 在Linux下写一个简单的驱动程序
本文首先描述了一个可以实际测试运行的驱动实例,然后由此去讨论Linux下驱动模板的要素,以及Linux上应用程序到驱动的执行过程.相信这样由浅入深.由具体实例到抽象理论的描述更容易初学者入手Linux ...
- php中函数内使用static修饰变量
首先理解静态变量的区别,声明一个函数test() function num(){ $a = 0; echo $a; $a++; } num();num();num(); //输出000 functio ...
- 自定义的你的ubuntu鼠标右键
首先看下效果图: 好,接下来讲下如何实现,“下一个桌面”和”在终端打开“,首先是安装必要软件 sudo apt-get -y install nautilus-open-terminal nautil ...
- 【BZOJ 2132】 圈地计划
Description 最近房地产商GDOI(Group of Dumbbells Or Idiots)从NOI(Nuts Old Idiots)手中得到了一块开发土地.据了解,这块土地是一块矩形的区 ...
- Configuring My Site in SharePoint 2010
Configuring the User Profile Service in SharePoint 2010 http://sharepointgeorge.com/2010/configuring ...
- android开发获取屏幕高度和宽度
宽度:getWindowManager().getDefaultDisplay().getWidth(); 高度:getWindowManager().getDefaultDisplay().getH ...