此次实训创建了服务以及服务接口实现类
首先在net.hy.student下创建一个service包,然后在service包下创建四个数据访问接口,CollegeService、StatusService、StudentService、UserService其部分代码如下
CollegeService
package net.hy.student.service;
import net.hy.student.bean.College;
/**
* 功能:学校服务接口
* 作者:黄运
* 日期:2020年7月8日
*/
public interface CollegeService {
College findCollegeById(int id);
int updateCollege(College college);
}
StatusService
package net.hy.student.service;
import net.hy.student.bean.Status;
/**
* 功能:状态服务接口
* 作者:黄运
* 日期:2020年7月8日
*/
public interface StatusService {
Status findStatusById(int id);
int updateStatus(Status status);
}
StudentService
package net.hy.student.service;
import net.hy.student.bean.Student;
import java.util.List;
import java.util.Vector;
/**
* 功能:学生服务接口
* 作者:黄运
* 日期:2020年7月8日
*/
public interface StudentService {
int addStudent(Student student);
int deleteStudentById(String id);
int deleteStudentsByClass(String clazz);
int deleteStudentsByDepartment(String department);
int updateStudent(Student student);
Student findStudentById(String id);
List<Student> findStudentsByName(String name);
List<Student> findStudentsByClass(String clazz);
List<Student> findStudentsByDepartment(String department);
List<Student> findAllStudents();
Vector findRowsBySex();
Vector findRowsByClass();
Vector findRowsByDepartment();
}
UserService
package net.hy.student.service;
import net.hy.student.bean.User;
import java.util.List;
/**
* 功能:用户服务接口
* 作者:黄运
* 日期:2020年7月8日
*/
public interface UserService {
int addUser(User user);
int deleteUserById(int id);
int updateUser(User user);
User findUserById(int id);
List<User> findAllUsers();
User login(String username, String password);
boolean isUsernameExisted(String username);
}
在net.hy.student.service包里创建impl子包,然后在里面创建四个服务接口的实现类,其部分的代码如下所示
CollegeServiceImpI
package net.hy.student.service.ImpI;
import net.hy.student.bean.College;
import net.hy.student.dao.CollegeDao;
import net.hy.student.dao.ImpI.CollegeDaoImpI;
import net.hy.student.service.CollegeService;
/**
* 功能:学校服务接口实现类
* 作者:黄运
* 日期:2020年7月8日
*/
public class CollegeServiceImpI implements CollegeService {
/**
* 声明学校数据访问对象
*/
private CollegeDao collegeDao = new CollegeDaoImpI();
@Override
public College findCollegeById(int id) {
return collegeDao.findById(id);
}
@Override
public int updateCollege(College college) {
return collegeDao.update(college);
}
}
StatusServiceImpI
package net.hy.student.service.ImpI;
import net.hy.student.bean.Status;
import net.hy.student.dao.StatusDao;
import net.hy.student.dao.ImpI.StatusDaoImpI;
import net.hy.student.service.StatusService;
/**
* 功能:状态服务接口实现类
* 作者:黄运
* 日期:2020年7月8日
*/
public class StatusServiceImpI implements StatusService {
/**
* 声明状态数据访问对象
*/
private StatusDao statusDao = new StatusDaoImpI();
@Override
public Status findStatusById(int id) {
return statusDao.findById(id);
}
@Override
public int updateStatus(Status status) {
return statusDao.update(status);
}
}
StudentServiceImpI
package net.hy.student.service.ImpI;
import net.hy.student.bean.Student;
import net.hy.student.dao.StudentDao;
import net.hy.student.dao.impl.StudentDaoImpI;
import net.hy.student.service.StudentService;
import java.util.List;
import java.util.Vector;
/*
功能:学生服务接口实现类
作者:黄运
日期:2020年7月8日
*/
public abstract class StudentServiceImpI implements StudentService {
/*
声明学生数据访问对象
*/
private final StudentDao studentDao = new StudentDaoImpI() {
@Override
public Vector findRowBySex() {
return studentDao.findRowsBySex();
}
@Override
public Vector findRowByClass() {
return studentDao.findRowByClass();
}
@Override
public Vector findRowByDepartment() {
return studentDao.findRowsByDeparment();
}
};
@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.findRowsByDeparment();
}
@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);
}
}
UserServiceImpI
package net.hy.student.service.ImpI;
import net.hy.student.bean.User;
import net.hy.student.dao.UserDao;
import net.hy.student.service.UserService;
import java.util.List;
/*
功能:学生服务接口实现类
作者:黄运
日期:2020年7月8日
*/
public class UserServiceImpI implements UserService {
/**
* 声明用户数据访问对象
*/
private UserDao userDao = new UserDaoImpI();
@Override
public int addUser(User user) {
return 0;
}
@Override
public int deleteUserById(int id) {
return 0;
}
@Override
public int updateUser(User user) {
return 0;
}
@Override
public User findUserById(int id) {
return null;
}
@Override
public List<User> findAllUsers() {
return null;
}
@Override
public User login(String username, String password) {
return null;
}
@Override
public boolean isUsernameExisted(String username) {
return false;
}
private class UserDaoImpI implements UserDao {
@Override
public int insert(User user) {
return userDao.insert(user);
}
@Override
public int deleteById(int id) {
return userDao.deleteById(id);
}
@Override
public int update(User user) {
return userDao.update(user);
}
@Override
public User findById(int id) {
return userDao.findById(id);
}
@Override
public List<User> findAll() {
return userDao.findAll();
}
@Override
public User login(String username, String password) {
return userDao.login(username,password);
}
@Override
public boolean isUsernameExisted(String username) {
return userDao.isUsernameExisted(username);
}
}
}
当服务接口类了创建好以后我们就可以对这些接口进行测试,其测试代码部分以及运行截图如下
TestCollegeServiceImpI
package net.hy.student.test;
import net.hy.student.bean.College;
import net.hy.student.service.CollegeService;
import net.hy.student.service.ImpI.CollegeServiceImpI;
import org.junit.Test;
/*
功能:测试学校服务接口实现类
作者:黄运
日期:2020年7月8日
*/
public class TestCollegeServiceImpI {
//创建学校服务接口对象
CollegeService service = new CollegeServiceImpI();
@Test
public void testFindCollegeById(){
//调用学校服务接口对象的查找方法,获取学校对象
College college = service.findCollegeById(1);
//输出学校信息
System.out.println("姓名:"+college.getName());
System.out.println("校长:"+college.getPresident());
System.out.println("地址:"+college.getAddress());
System.out.println("邮箱:"+college.getEmail());
System.out.println("电话:"+college.getTelephone());
}
@Test
public void testUpdateCollege(){
CollegeService service = new CollegeServiceImpI();
College college = service.findCollegeById(1);
college.setPresident("王洪礼");
college.setTelephone("0830-3150380");
int count = service.updateCollege(college);
if(count > 0){
System.out.println("恭喜,学校记录更新成功!");
college = service.findCollegeById(1);
System.out.println(college);
}else{
System.out.println("遗憾,学校记录更新失败!");
}
}
}
TestStatusServiceImpI
package net.hy.student.test;
import net.hy.student.bean.Status;
import net.hy.student.service.ImpI.StatusServiceImpI;
import net.hy.student.service.StatusService;
import org.junit.Test;
/*
功能:测试学校服务接口实现类
作者:黄运
日期:2020年7月8日
*/
public class TestStatusServiceImpI {
//创建状态服务接口对象
StatusService service = new StatusServiceImpI();
@Test
public void testFindStatusById(){
//调用状态服务接口对象的查询方法,获取状态对象
Status status = service.findStatusById(1);
//输出信息
System.out.println("作者:"+status.getAuthor());
System.out.println("学校:"+status.getCollege());
System.out.println("版本:"+status.getVersion());
System.out.println("地址:"+status.getAddress());
System.out.println("电话:"+status.getTelephone());
System.out.println("邮箱:"+status.getEmail());
}
@Test
public void testUpdateStatus(){
//调用状态服务接口对象的查询方法,获取对象
Status status = service.findStatusById(1);
status.setAuthor("黄运");
status.setTelephone("17318923111");
//调用状态服务对象的更新方法,更新状态对象
int count = service.updateStatus(status);
if(count > 0 ){
System.out.println("恭喜,状态记录更新成功!");
status = service.findStatusById(1);
System.out.println(status);
}else{
System.out.println("遗憾,状态记录更新失败!");
}
}
}
TestStudentServiceImpI
package net.hy.student.test;
import net.hy.student.bean.Student;
import net.hy.student.service.ImpI.StudentServiceImpI;
import net.hy.student.service.StudentService;
import org.junit.Test;
import java.util.List;
/*
功能:测试学生服务接口实现类
作者:黄运
日期:2020年7月8日
*/
public class TestStudentServiceImpI {
//创建学生服务接口对象
StudentService service = new StudentServiceImpI() {
@Override
public int addStudent(Student student) {
return super.addStudent(student);
}
};
TestUserServiceImpI
public class TestUserServiceImpI {
//创建用户服务接口对象
UserService service = new UserServiceImpI();
@Test
public void testLogin(){
String username, password;
username = "huangyun";
password = "123456";
User user = service.login(username,password);
if(user != null){
System.out.println("恭喜,用户名与密码正确,登陆了成功!");
} else{
System.out.println("遗憾,用户名或密码错误,登录失败!");
}
}
}