🍖三层开发思维的模拟实现 day13


🌭提示:这里直接使用java代码进行编码描述实现大致逻辑,思维导图如下:

java中user类有什么特点 java user user_验证码


  • 🍚 UserController.java:控制层
  • 🍚 UserService:逻辑层
  • 🍚 UserMapper:数据层
  • 🍚 User用户类
  • 🍚 Secret工具类
    以下是文件的编写顺序,即编写思路

🍖一、控制层编写⭐

UserController.java:获取用户账号和密码

public class UserController {
    //假设通过方法Verify获取浏览器上用户输入的账户和密码
    public String Verify(User user){
        //假设用户直接输入如下内容 ,这里要写一个User.java用户类
        user.setUserName("123456");//这里是假设账号
        user.setUserPassword("123456");//这里是假设的用户输入的密码
        
    //获取用户账号密码以及(盐=加密)
        UserService userservice=new UserService();
        //调用业务逻辑层,将获取的账号和密码传给逻辑层
        String result= userservice.Verify(user.getUserName(),user.getUserPassword());
        System.out.println(result);//打印反馈的结果
        return result;//将结果反馈到前端
    }

    public static void main(String[] args) {
        UserController uc=new UserController();
        uc.Verify(new User());//启动程序
    }
}

为了方便我们封装一个用户类:


🍖二、User用户类

里面封装了用的id,userName,userPassword等属性,方便我们的调用

public class User {
    public int id;
    public String userName;//账号
    public String userPassword;//密码
    public String salt;//加密
//以下是生成的getter()和setter()方法
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
   public String getUserPassword() {
        return userPassword;
    }
    public void setUserPassword(String userPassword) {
        this.userPassword = userPassword;
    
    public String getSalt() {
        return salt;
    }
    public void setSalt(String salt) {
        this.salt = salt;
    }
}

🍖三、逻辑层的编写⭐

对得到的账号,密码进行判断处理并对密码加密

public class UserService {
    public String Verify(String name,String password){
        //简单的逻辑判断账号和密码是否为空
        if(name==null ||name.trim().equals("")){
            return "用户名不能为空";//返回提示
        }
        if(password==null ||password.trim().equals("")){
            return "密码不能为空";//返回提示
        }

        //进行加密
        secret sc=new secret();
        //这里需要创建一个产生随机四位验证码的工具类  secret.java
        //这里直接加四位随机数进行加密
        String secret=sc.secret(4);//随机产生4位随机验证码
        password=password+secret;//与密码拼接假设是加密处理

        //插入数据库
        Mapper map=new Mapper();//调用数据层
        int result=map.Verify(name,password,secret);//传入处理过的数据
        //对result数据层返回的结果判断,1是注册成功,0是注册失败
        if(result==1){
            return "注册成功";
        }else{
            return "注册失败";
        }
    }
}

🍖四、工具类secret.java的编写(生成随机验证码)

public class secret {
    public String secret(int length) {//length几位验证码
        String s="";
        Random R = new Random();//随机数对象
        for (int i = 0; i < length; i++) {
            if (i % 2 == 0) {//当为偶数位时产生随机数字0~9
                //随机数字
                int x = R.nextInt(10);
                s=s+x;//验证码的拼接
            } else {//否则随机字母a~z
                //随机小写字母
                char y = (char) (R.nextInt(27) + 97);
                s=s+y;//验证码的拼接
            }
        }
        return s;//返回验证码
    }

java中user类有什么特点 java user user_java中user类有什么特点_02

🍖五、数据层编写⭐

public class Mapper {
    public int Verify(String name,String password,String secret){
    //这里打印处理过的数据,假设作为成功插入数据库
        System.out.println("name = " + name);
        System.out.println("password = " + password);
        System.out.println("secret = " + secret);
        return 1;//并返回值1,表示插入成功
    }
}

见证结果:~~~

java中user类有什么特点 java user user_验证码_03

假设用户输入空密码

java中user类有什么特点 java user user_验证码_04

🍜以上便是三层开发的大体思维路线,🍚控制层的编写(封装用户类)~~~🍚逻辑层的编写(封装工具类)~~~🍚数据层的编写,再由数据层返回最终结果,这里只是使用Java代码实现了三层开发逻辑,将大概的逻辑用代码实现出来,完结撒花!