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. [大牛翻译系列]Hadoop(20)附录A.10 压缩格式LZOP编译安装配置

    附录A.10 LZOP LZOP是一种压缩解码器,在MapReduce中可以支持可分块的压缩.第5章中有一节介绍了如何应用LZOP.在这一节中,将介绍如何编译LZOP,在集群做相应配置. A.10.1 ...

  2. PHP获取Cookie模拟登录CURL

    要提取google搜索的部分数据,发现google对于软件抓取它的数据屏蔽的厉害,以前伪造下 USER-AGENT 就可以抓数据,但是现在却不行了.利用抓包数据发现,Google 判断了 cookie ...

  3. Hibernate 插入,修改,删除,查询语句

    /* *具体操作hibernate的类 *增加,删除,修改,按ID查询,模糊查询,查询全部 **/ public class PersonOperate { //在hibernate中所有操作都是由S ...

  4. 系统中使用frameset和Iframe刷新页面session失效

    问题:Asp.net中每次刷新页面,session中保存的只就丢失 原因: 1.有些杀毒软件会去扫描web.config文件 2.程序内部有让session丢失的代码,或服务器内存不足 3.程序有框架 ...

  5. HDFS基本知识整理

    设计理念:         1.超大文件         2.流式数据访问         3.商用普通硬件 不适合场景:         1.低时间延迟的数据访问         2.大量的小文件 ...

  6. MyException

    自定义Exception using System; using System.Collections.Generic; using System.Linq; using System.Text; u ...

  7. 在eclipse中使用jax-ws构建webservices服务端和客户端

    服务端: package com.yinfu.service; import javax.jws.WebService; import javax.xml.ws.Endpoint; @WebServi ...

  8. ffmpeg 编码

    编码可以简单理解为将连续的图片帧转变成视频流的过程.以H264为例给出编码的代码: int InitEncoderCodec(int width, int height) { auto enc = a ...

  9. sed 详解

    sed 详解 1.简介 sed是非交互式的编辑器.它不会修改文件,除非使用shell重定向来保存结果.默认情况下,所有的输出行都被打印到屏幕上. sed编辑器逐行处理文件(或输入),并将结果发送到屏幕 ...

  10. SpringJUnit4加载类目录下(src)和WEF-INF目录下的配置文件二--获取注入的bean的二种方式

    前言: spring容器以xml的形式注入bean,然后可以在类中获取,获取的形式主要有二种:第一种最简单--采用@Resource 或@Autowired关键字在加载spring文件时将bean注入 ...