文章目录
- 七、实现步骤
- (八)创建服务接口实现类
- 1、创建学校服务接口实现类
- 单元测试:对CollegeServiceImpl进行单元测试
- 2、创建状态服务接口实现类
- 单元测试:对StatusServiceImpl进行单元测试
- 3、创建学生服务接口实现类
- 单元测试:对StudentServiceImpl进行单元测试
- 独立完成剩余方法的测试任务
- (1)编写测试方法testAddStudent()
- (2)编写测试方法testDeleteStudentById()
- (3)编写测试方法testDeleteStudentsByClass()
- (4)编写测试方法testDeleteStudentsByDepartment()
- (5)编写测试方法testUpdateStudent()
- (6)编写测试方法testFindStudentById()
- (7)编写测试方法testFindAllStudents()
- (8)编写测试方法testFindStudentsByClass()
- (9)编写测试方法testFindStudentsByDepartment()
- (10)编写测试方法testFindRowsBySex()
- (11)编写测试方法testFindRowsByClass()
- (12)编写测试方法testFindRowsByDepartment()
- 4、创建用户服务接口实现类
- 单元测试:对UserServiceImpl进行单元测试
- 独立完成剩余方法的测试任务
七、实现步骤
(八)创建服务接口实现类
- 在net.hw.student.service包里创建impl子包,然后在里面创建四个服务接口的实现类
1、创建学校服务接口实现类
- 创建学校服务接口实现类CollegeServiceImpl
package net.hw.student.service.impl;
import net.hw.student.bean.College;
import net.hw.student.dao.CollegeDao;
import net.hw.student.dao.impl.CollegeDaoImpl;
import net.hw.student.service.CollegeService;
/**
* 功能:学校服务接口实现类
* 作者:华卫
* 日期:2020年06月06日
*/
public class CollegeServiceImpl implements CollegeService {
/**
* 声明学校数据访问对象
*/
private CollegeDao collegeDao = new CollegeDaoImpl();
@Override
public College findCollegeById(int id) {
return collegeDao.findById(id);
}
@Override
public int updateCollege(College college) {
return collegeDao.update(college);
}
}
单元测试:对CollegeServiceImpl进行单元测试
为了确保Service层给上层提供正确的服务,应该进行单元测试,本项目采用JUnit4单元测试框架。
- 在net.hw.student.test包里创建测试类TestCollegeServiceImpl
(1)编写测试方法testFindCollegeById()
- 运行该测试方法,查看结果
(2)编写测试方法testUpdateCollege()
- 运行该测试方法,查看结果
2、创建状态服务接口实现类
- 创建状态服务接口实现类StatusServiceImpl
package net.hw.student.service.impl;
import net.hw.student.bean.Status;
import net.hw.student.dao.StatusDao;
import net.hw.student.dao.impl.StatusDaoImpl;
import net.hw.student.service.StatusService;
/**
* 功能:状态服务接口实现类
* 作者:华卫
* 日期:2020年06月06日
*/
public class StatusServiceImpl implements StatusService {
/**
* 声明状态数据访问对象
*/
private StatusDao statusDao = new StatusDaoImpl();
@Override
public Status findStatusById(int id) {
return statusDao.findById(id);
}
@Override
public int updateStatus(Status status) {
return statusDao.update(status);
}
}
单元测试:对StatusServiceImpl进行单元测试
- 在net.hw.student.test包里创建测试类TestStatusServiceImpl
(1)编写测试方法testFindStatusById()
- 运行该测试方法,查看结果
(2)编写测试方法testUpdateStatus()
- 运行该测试方法,查看结果
3、创建学生服务接口实现类
- 创建学生服务接口实现类StudentServiceImpl
package net.hw.student.service.impl;
import net.hw.student.bean.Student;
import net.hw.student.dao.StudentDao;
import net.hw.student.dao.impl.StudentDaoImpl;
import net.hw.student.service.StudentService;
import java.util.List;
import java.util.Vector;
/**
* 功能:学生服务接口实现类
* 作者:华卫
* 日期:2020年06月06日
*/
public class StudentServiceImpl implements StudentService {
/**
* 声明学生数据访问对象
*/
private StudentDao studentDao = new StudentDaoImpl();
@Override
public int addStudent(Student student) {
return studentDao.insert(student);
}
@Override
public int deleteStudentById(String id) {
return studentDao.deleteById(id);
}
@Override
public int deleteStudentsByClass(String clazz) {
return studentDao.deleteByClass(clazz);
}
@Override
public int deleteStudentsByDepartment(String department) {
return studentDao.deleteByDepartment(department);
}
@Override
public List<Student> findAllStudents() {
return studentDao.findAll();
}
@Override
public Vector findRowsByClass() {
return studentDao.findRowsByClass();
}
@Override
public Vector findRowsByDepartment() {
return studentDao.findRowsByDepartment();
}
@Override
public Vector findRowsBySex() {
return studentDao.findRowsBySex();
}
@Override
public Student findStudentById(String id) {
return studentDao.findById(id);
}
@Override
public List<Student> findStudentsByClass(String clazz) {
return studentDao.findByClass(clazz);
}
@Override
public List<Student> findStudentsByDepartment(String department) {
return studentDao.findByDepartment(department);
}
@Override
public List<Student> findStudentsByName(String name) {
return studentDao.findByName(name);
}
@Override
public int updateStudent(Student student) {
return studentDao.update(student);
}
}
单元测试:对StudentServiceImpl进行单元测试
- 在net.hw.student.test包里创建测试类TestStudentServiceImpl
(1)编写测试方法testFindStudentsByName()
- 运行该测试方法,查看结果
独立完成剩余方法的测试任务
(1)编写测试方法testAddStudent()
(2)编写测试方法testDeleteStudentById()
(3)编写测试方法testDeleteStudentsByClass()
(4)编写测试方法testDeleteStudentsByDepartment()
(5)编写测试方法testUpdateStudent()
(6)编写测试方法testFindStudentById()
(7)编写测试方法testFindAllStudents()
(8)编写测试方法testFindStudentsByClass()
(9)编写测试方法testFindStudentsByDepartment()
(10)编写测试方法testFindRowsBySex()
(11)编写测试方法testFindRowsByClass()
(12)编写测试方法testFindRowsByDepartment()
4、创建用户服务接口实现类
- 创建用户服务接口实现类UserServiceImpl
package net.hw.student.service.impl;
import net.hw.student.bean.User;
import net.hw.student.dao.UserDao;
import net.hw.student.dao.impl.UserDaoImpl;
import net.hw.student.service.UserService;
import java.util.List;
/**
* 功能:用户数据访问接口实现类
* 作者:华卫
* 日期:2020年06月06日
*/
public class UserServiceImpl implements UserService {
/**
* 声明用户数据访问对象
*/
private UserDao userDao = new UserDaoImpl();
@Override
public int addUser(User user) {
return userDao.insert(user);
}
@Override
public int deleteUserById(int id) {
return userDao.deleteById(id);
}
@Override
public List<User> findAllUsers() {
return userDao.findAll();
}
@Override
public User findUserById(int id) {
return userDao.findById(id);
}
@Override
public User login(String username, String password) {
return userDao.login(username, password);
}
@Override
public int updateUser(User user) {
return userDao.update(user);
}
@Override
public boolean isUsernameExisted(String username) {
return userDao.isUsernameExisted(username);
}
}
单元测试:对UserServiceImpl进行单元测试
- 在net.hw.student.test包里创建测试类TestUserServiceImpl
(1)编写测试方法testLogin()
- 运行该测试方法,查看结果
- 修改用户名与密码
- 再次运行该测试方法,查看结果