文章目錄
- 七、實現步驟
- (八)創建服務接口實現類
- 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()
- 運行該測試方法,查看結果
- 修改用戶名與密碼
- 再次運行該測試方法,查看結果