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 ...
随机推荐
- mongodb 入门笔记
选择Mongo的关键是:这是一个 JSON 文档数据库. 1. Mongo 的术语 文档:一条完整的数据就是一个文档(对应于 MySQL 的一行). 集合:一组文档构成一个集合.类似 MySQL 中表 ...
- Sublime Text 前端开发常用扩展插件推荐
Sublime Text 前端开发常用扩展插件推荐 Sublime Text Sublime Text 是程序员们公认的编码神奇,拥有漂亮的用户界面和强大的功能 更重要的是,Sublime Text ...
- CLR via C# 线程基础知识读书笔记
1.线程的开销 a.线程内核对象 b.线程环境块 c.用户模式栈(1MB) d.内核模式栈 f.DLL线程连接和线程分离通知 2.线程的优先级由进程优先级和线程优先级共同组成 3.进程中所有的前台线程 ...
- SQL Server 2012 BI 学习 第一天
了解数据源,数据源视图,多维数据集,维度 数据源:一个数据库或者其它数据链接,SSAS不支持使用模拟功能来处理 OLAP 对象.模拟信息选择“使用服务帐户” 数据源视图:DSV是元数据的单个统一视图, ...
- 1097. Deduplication on a Linked List (25)
Given a singly linked list L with integer keys, you are supposed to remove the nodes with duplicated ...
- STL算法
STL算法部分主要由头文 件<algorithm>,<numeric>,<functional>组成.要使用 STL中的算法函数必须包含头文件<algorit ...
- 在Windows下忘记MySQL最高用户权限密码的解决方案
1.打开MySQL配置文件 my.ini中,添加上skip-grant-tables,可以添加到文件的末尾或者是这添加到[mysqld]的下面(直接添加在my.ini文件最后亲测可以,但是在[mysq ...
- WPF解析Word为图片
偶遇需要解析Word为单张图,此做 http://git.oschina.net/jiailiuyan/OfficeDecoder using System; using System.Collect ...
- C#WinForm中显示实时时间:年/月/日 时/分/秒 星期X
//加载窗体时 string weekstr = ""; private void Form22_Load(object sender, EventArgs e) { this.t ...
- spring mvc 学习笔记【1】---前言
扎扎实实地掌握好技术 ----------------------------------------------------------------------------------------- ...