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 ...
随机推荐
- Django模版进阶
# -*- coding: utf-8 -*-from django.shortcuts import renderdef home(request): string = "测试" ...
- 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 ...
- CentOS thrift python demo
编辑接口文件 hellowworld.thrift service HelloWorld { string ping(), string say(1:string msg) } 编辑 server.p ...
- MySQL显示连接的数据库名
在默认下,MySQL在use databasename的时候,是不显示连接的库名! mysql> show databases;+--------------------+| Database ...
- IOS开发之──应用之间调用(1)
iphone应用之间调用步骤: 1)在plist文件中,注册对外接口 在xcode group&files 里面,展开 resources选择<app>info.plist 鼠标右 ...
- jquery-2.0.3.js和jquery-2.0.3.min.js的区别
两个文件的作用是完全一样的. jquery-2.0.3.js里的代码是没有进行处理的原代码,适合于人们阅读与研究. jquery-2.0.3.min.js里的代码进行过特殊的处理, 如变量的名称基本都 ...
- Ui设计哪里有好的素材
刚看到花瓣网,的确不错,以后得多逛逛了.(不喷广告,只留作笔记)
- 关于6410的sd卡和nandflash启动的区别
今天在公司我们队长问我个问题,关于cortex的sd启动流程和nandflash的启动流程,一下想不起来了,中午闲来无事就整理了整理当初6410的两种启动方式的区别.在这里写一下.有不对的请指点,我对 ...
- FineUI Grid控件右键菜单的实现
FineUI官方Demo上一直没有Grid右键菜单的实现,其实从4.1.x的版本开始,允许添加自定义的事件监听(Listeners),所以要实现这个功能已经相当容易了. ExtJs右键菜单有很多种,对 ...
- 送给那些喜欢myeclipse黑色主题但是又不知道怎么配色的人
设置MyEclipse黑色主题背景 1. 下载 http://eclipsecolorthemes.org/ 看哪个合适直接点击进入, 下载右边的epf 2. 下载完成...打开myeclipse. ...