自定义登录验证案例

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,结束请退出!");
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值