1. 编写登录用户父类
public class Users {
private String name;
private String password;
private Integer score;
public Users() { }
public Users(String name, String password, Integer score) {
this.name = name;
this.password = password;
this.score = score;
}
//set\get\toString
}
2. 编写数据库Dao层并写入判断方法
/**
* 数据访问层类,负责数据的维护
*/
public class UsersDao {
private Users[] users=new Users[5];
public UsersDao(){
users[2]=new Users("admins","123456789",88);
users[1]=new Users("admin1","123456zsl",99);
users[0]=new Users("admin","123456",77);
}
/**
* 按用户名查询用户对象的方法
* @param name 用户名
* @return 用户对象,没查到返回null
*/
public Users selectByName(String name){
for (Users u:users){
if (u==null){
return null;
}
if (u.getName().equals(name)){
return u;
}
}
return null;
}
}
3. 编写业务层,依赖Dao层,
public class UsersService {
private UsersDao usersDao=new UsersDao();
/**
* 登录验证方法
* @param name 用户名
* @param password 密码
* @return 验证成功返回用户对象
* @throws NameException 用户名不存在时抛出的异常
* @throws PasswordException 当密码错误时抛出的异常
*/
public Users isLogin(String name,String password)
throws NameException,PasswordException{
Users users=this.usersDao.selectByName(name);
if(users==null){
throw new NameException("用户不存在,请注册");
}
else {
if (password.equals(users.getPassword())){
return users;
}else {
throw new PasswordException("密码错误,重新输入密码");
}
}
}
}
4. 自定义异常类
public class NameException extends Exception{
public NameException() {
}
public NameException(String message) {
super(message);
}
}
public class PasswordException extends Exception{
public PasswordException() {
}
public PasswordException(String message) {
super(message);
}
}
5. 编写测试类
public class TestUsers {
public static void main(String[] args) {
UsersService usersService=new UsersService();
try {
Users users=usersService.isLogin("admin","1234567");
//对比Dao中输入的用户名密码等信息。
System.out.println(users);
}catch (NameException e) {
e.printStackTrace();
}catch (PasswordException e) {
e.printStackTrace();
}
System.out.println("end,结束请退出!");
}
}