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层的更多相关文章

  1. JavaWeb项目开发案例精粹-第3章在线考试系统-007View层

    0.login.jsp <%@ page language="java" import="java.util.*" pageEncoding=" ...

  2. JavaWeb项目开发案例精粹-第3章在线考试系统-005action层

    1. <?xml version="1.0" encoding="UTF-8" ?><!-- XML声明 --> <!DOCTYP ...

  3. JavaWeb项目开发案例精粹-第3章在线考试系统-003Dao层

    1. package com.sanqing.dao; import java.util.List; import com.sanqing.po.Student; public interface S ...

  4. JavaWeb项目开发案例精粹-第3章在线考试系统-006实体层

    1. package com.sanqing.po; /* * 学生表,保存学生编号,系统密码 */ public class Student { private String studentID; ...

  5. JavaWeb项目开发案例精粹-第3章在线考试系统-002配置文件及辅助类

    1. <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5&qu ...

  6. JavaWeb项目开发案例精粹-第3章在线考试系统-001设计

    1. 2. 3. 4. # MySQL-Front 5.0 (Build 1.0) /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE */; /*!40101 SET SQL ...

  7. JavaWeb项目开发案例精粹-第6章报价管理系统-05Action层

    0. <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC &quo ...

  8. JavaWeb项目开发案例精粹-第6章报价管理系统-002辅助类及配置文件

    1. <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www ...

  9. JavaWeb项目开发案例精粹-第2章投票系统-001设计

    1.项目结构 2.数据库设计 # MySQL-Front 5.0 (Build 1.0) /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE */; /*!40101 SET ...

随机推荐

  1. react-native-vector-icons 安装

    react-native-vector-icons 是可以直接使用图片名就能加载图片的第三方,类似于web的iconfont矢量图,使用很方便, 你不需要在工程文件夹里塞各种图片, 节省很多空间,下面 ...

  2. PHP 登录完成后如何跳转上一访问页面

    访问网站页面时,有的页面需要授权才能访问,这时候就会要求用户登录,跳转到登录页面login.php,怎么实现登录后返回到刚才访问的页面 项目需求 访问网站页面时,有的页面需要授权才能访问,这时候就会要 ...

  3. Posix 信号量

    作用 信号量的值为0或正整数,就像红灯与绿灯,用于指示当前是否可以接受任务. 信号量对进程和线程都适用. gcc编译时需加-lpthread 基本函数 信号量的相关函数与标准文件函数非常相似,可以理解 ...

  4. 金融系列5《AUTH过程》

    INITIALIZE UPDATE: 在安全通道的显式发起期间,INITIALIZEUPDATE命令用于在卡和主机之间传送卡和会话数据.这个命令开始一个安全通道会话的发起. CPURESET() // ...

  5. 通过FTP将一个数据文件从A服务器下载到B服务器的整个过程

    现在的环境如下: 服务器A :192.168.1.104 服务器B:192.168.1.138 需要将A服务器上的某个数据文件下载到B服务器上,传输方式为:FTP 那么,要怎么去实现呢? 首先,需要添 ...

  6. MySQL批量杀进程

    OS: CentOS 6.3 DB:5.5.14 mysql> show processlist;+----+------+-----------+--------------------+-- ...

  7. oracle 存储过程编辑 卡死

    一.可用SYS登录, 二.查锁session_ID查找存储过程OPERATIONDATA_IMP被哪些session锁住而无法编译select * FROM dba_ddl_locks where n ...

  8. 【F#】核心数据多线程处理的首选

    http://www.cnblogs.com/zilin-xiao/archive/2011/08/26/2155124.html

  9. Async详解之一:流程控制

    为了适应异步编程,减少回调的嵌套,我尝试了很多库.最终觉得还是async最靠谱. 地址:https://github.com/caolan/async Async的内容分为三部分: 流程控制:简化十种 ...

  10. Asp.Net生命周期系列五

    如果您看了我的前四篇文章,应该知道目前Http请求已经流到了HttpModule这个程序员手中了,而且我们可以注册自己的HttpModule并且可以在里面注册一些事件来控制这个Http请求,但是到目前 ...