JAVA实训第四次总结
计应3班 彭卉
本次实训完成了11讲和12讲中创建服务接口和创建服务接口实践类以及测试
测试学校服务接口实现类
测试状态服务接口实现类
测试学生服务接口实现类
测试用户服务接口实现类
在运行代码中出现的一些问题:
1.异常提示:The method login(String, String) in the type UserService is not applicable for the arguments (String)
翻译:Userservice 类型中的方法 login (string,string)不适用于参数(string)
有些时候稍不注意就会出现这个问题,出现这个问题的原因是我在定义接口的时候类型login方法【User login(String username, String password);】的参数没写一致,而且testIsUsernameExisted()方法中应该如下图方法:
2.异常提示:Type mismatch: cannot convert from Status to SSLEngineResult.Status
翻译:类型不匹配: 无法将状态转换为 sslengineresult.status
错误原因:导包错,应该是导入bean包,结果我导成了第一个
改为:import net.ph.student.bean.*;
3.异常提示:由于没有截到图,错误的大概意思是要加上list
错误原因:前面的方法上不小心加上了泛型
这个问题是同桌出现的,但是我觉得我也记录一下,提醒自己在写代码是要仔细一些
个人总结:
本次实训代码虽然测试也较多,但是与之前的测试代码所差无几,所以可以较快的写出来,有了之前的基础,这次在写的时候犯错较少,而且脑中也形成了步骤,按照接口设置的规范,再创建实现类和测试。
部分代码
UserServiceImpl
package net.ph.student.service.impl;
import java.util.List;
import net.ph.student.bean.User;
import net.ph.student.dao.UserDao;
import net.ph.student.impl.UserDaoImpl;
import net.ph.student.service.UserService;
/**
* 功能:用户数据访问服务接口实现类
* @author 彭卉
*2020年07月08日
* */
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);
}
}
TestUserServiceImpl
package out;
import java.sql.Timestamp;
import java.util.Date;
import java.util.List;
import org.junit.Test;
import net.ph.student.bean.User;
import net.ph.student.service.UserService;
import net.ph.student.service.impl.*;
/**
* 功能:测试用户服务接口实现类
* @author 彭卉
*日期:2020年07年08对象
*/
public class TestUserServiceImpl {
// 创建用户服务接口对象
UserService service = new UserServiceImpl();
@Test
public void testLogin() {
String username = "彭卉";
String password = "666666";
User user = service.login(username, password);
if(user != null) {
System.out.println("恭喜,用户名与密码正确,登录成功!");
}else {
System.out.println("遗憾,用户名或密码错误,登录失败!");
}
}
@Test
public void testIsUsernameExisted() {
String username = "彭卉";
boolean result = service.isUsernameExisted(username);
if(result) {
System.out.println("恭喜,用户名与密码正确,登录成功!");
}else {
System.out.println("遗憾,用户名或密码错误,登录失败!");
}
}
@Test
public void testAddUser() {
//定义用户对象
User user = new User();
//设置用户属性
user.setUsername("赵凯丽");
user.setPassword("789456");
user.setTelephone("15678876555");
user.setRegisterTime(new Timestamp(new Date().getTime()));
//调用用户数据访问对象的插入方法
int count = service.addUser(user);
//判断用户记录是否插入成功
if(count > 0) {
System.out.println("恭喜,用户记录插入成功!");
System.out.println(service.findUserById(service.findAllUsers().size()));
}else{
System.out.println("遗憾,用户记录插入失败!");
}
}
@Test
public void testDeleteById() {
int id = 13;
int count = service.deleteUserById(id);
if(count > 0) {
System.out.println("恭喜,用户记录删除成功!");
}else {
System.out.println("遗憾,用户记录删除失败!");
}
}
@Test
public void testUpdateUser() {
User user = service.findUserById(7);
user.setPassword("2222222");
user.setUsername("李玲");
int count = service.updateUser(user);
if(count > 0) {
System.out.println("用户记录更新成功");
System.out.println(service.findUserById(user.getId()));
}else {
System.out.println("用户记录更改失败!");
}
}
@Test
public void testFindUserById() {
//调用用户数据访问对象的查找方法
User user = service.findUserById(1);
System.out.println("用户名:"+user.getUsername());
System.out.println("密码:"+user.getPassword());
System.out.println("电话:"+user.getTelephone());
System.out.println("注册时间:"+user.getRegisterTime());
}
@Test
public void testFindAllUsers() {
List<User> users = service.findAllUsers();
for(User user:users) {
System.out.println(user);
}
}
}
``