java后端开发day19--学生管理系统升级

news/2025/2/25 0:23:27

在这里插入图片描述
(以下内容全部来自上述课程)

1.要求及思路

1.总体框架

请添加图片描述

2.注册

请添加图片描述

3.登录

请添加图片描述

4.忘记密码

请添加图片描述

2.代码

javabean_12">1.javabean

java">public class User1 {
    private String username;
    private String password;
    private String personID;
    private String phoneNumber;

    public User1() {
    }

    public User1(String username, String password, String personID, String phoneNumber) {
        this.username = username;
        this.password = password;
        this.personID = personID;
        this.phoneNumber = phoneNumber;
    }

    /**
     * 获取
     * @return username
     */
    public String getUsername() {
        return username;
    }

    /**
     * 设置
     * @param username
     */
    public void setUsername(String username) {
        this.username = username;
    }

    /**
     * 获取
     * @return password
     */
    public String getPassword() {
        return password;
    }

    /**
     * 设置
     * @param password
     */
    public void setPassword(String password) {
        this.password = password;
    }

    /**
     * 获取
     * @return personID
     */
    public String getPersonID() {
        return personID;
    }

    /**
     * 设置
     * @param personID
     */
    public void setPersonID(String personID) {
        this.personID = personID;
    }

    /**
     * 获取
     * @return phoneNumber
     */
    public String getPhoneNumber() {
        return phoneNumber;
    }

    /**
     * 设置
     * @param phoneNumber
     */
    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }

    public String toString() {
        return "User1{username = " + username + ", password = " + password + ", personID = " + personID + ", phoneNumber = " + phoneNumber + "}";
    }
}

2.测试类

1.注册
1.检查用户名是否唯一
java">private static boolean checkUsernameIsExist(String username, ArrayList<User1> list) {
        //遍历集合,获取每一个用户名,和输入的用户名进行比较
        for (int i = 0; i < list.size(); i++) {
            User1 user = list.get(i);
            String name = user.getUsername();
            if (name.equals(username)) {
                return true;
            }
        }
        return false;
    }
2.检查用户名格式是否正确
java"> private static boolean checkUsername (String username){
        //用户名必须是3-15位的数字和字母
        int length = username.length();
        if (length < 3 || length > 15) {
            System.out.println("用户名必须是5-15位的数字和字母");
            return false;
        }
        //用户名必须是数字和字母组成
        int count = 0;
        for (int i = 0; i < username.length(); i++) {
            char c = username.charAt(i);
            if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) {
                count++;
                break;
            }
        }
        //用户名满足要求
        return count > 0;
    }
3.检查身份证号格式是否正确
java">private static boolean checkPersonID(String personID) {
        //身份证号必须是18位的数字和字母
        int length = personID.length();
        if (length != 18) {
            System.out.println("身份证号必须是18位的数字和字母");
            return false;
        }
        //不能以0开头
        if (personID.startsWith("0")) {
            System.out.println("身份证号不能以0开头");
            return false;
        }
        //前17位必须是数字
        for (int i = 0; i < personID.length() - 1; i++) {
            char c = personID.charAt(i);
            if (!(c >= '0' && c <= '9')) {
                System.out.println("身份证号前17位必须是数字");
                return false;
            }
        }
        //最后一位可以是数字或者大写X或者小写x
        char c = personID.charAt(personID.length() - 1);
        if ((c >= '0' && c <= '9') || (c == 'X') || (c =='x')) {
            return true;
        } else {
            return false;
        }
    }

4.检查手机格式是否正确
java"> private static boolean checkPhoneNumber(String phoneNumber) {
        //手机号必须是11位的数字
        int length = phoneNumber.length();
        if (length!= 11) {
            System.out.println("手机号必须是11位的数字");
            return false;
        }
        //不能以0开头
        if (phoneNumber.startsWith("0")) {
            System.out.println("手机号不能以0开头");
            return false;
        } else {
            return true;
        }
    }
5.注册完整代码
java"> //注册
    public static void register(ArrayList<User1> list) {
        System.out.println("注册");
        User1 user = new User1();
        //1.键盘录入用户名
        Scanner sc = new Scanner(System.in);
        String username ;
        while (true) {
            System.out.println("请输入用户名:");
            username = sc.next();
            //开发细节:先验证格式是否正确,再验证是否唯一
            //因为在以后的所有数据,都是存在数据库中,如果我们要校验,需要使用网络资源

            boolean flag1 = checkUsername(username);
            if (!flag1) {
                System.out.println("用户名格式不正确,请重新输入:");
                continue;
            }
            //用户名格式正确,需要验证是否唯一
            boolean flag2 = checkUsernameIsExist(username, list);
            if (flag2) {
                //用户名已存在
                System.out.println("用户名"+username+"已经存在,请重新输入:");
            } else {
                //不存在,可用
                System.out.println("用户名"+username+"可以使用");
            }
            break;
        }

        //2.键盘录入密码
        String password ;
        while (true) {
            System.out.println("请输入密码:");
            password = sc.next();
            System.out.println("请再次输入密码:");
            String password2 = sc.next();
            if (password.equals(password2)) {
                System.out.println("密码输入正确");
                break;
            } else {
                System.out.println("密码输入错误,请重新输入:");
                continue;
            }
        }

        //3.键盘录入身份证号
        String personID ;
        while (true) {
            System.out.println("请输入身份证号:");
            personID = sc.next();
            boolean flag3 = checkPersonID(personID);
            if (flag3) {
                System.out.println("身份证号格式正确");
                break;
            } else {
                System.out.println("身份证号格式不正确,请重新输入:");
                continue;
            }
        }

        //4.键盘录入手机号
        String phoneNumber ;
        while (true) {
            System.out.println("请输入手机号:");
            phoneNumber = sc.next();
            boolean flag4 = checkPhoneNumber(phoneNumber);
            if (flag4) {
                System.out.println("手机号格式正确");
                break;
            } else {
                System.out.println("手机号格式不正确,请重新输入:");
                continue;
            }
        }

        //将用户对象添加到集合中
        User1 user1 = new User1(username, password, personID, phoneNumber);
        list.add(user1);
        System.out.println("注册成功");
    }

2.登录
1.检查用户名和密码是否正确
java">private static boolean checkUserInfo(User1 userInfo, ArrayList<User1> list) {
        //遍历集合,判断用户是否存在,如果不存在登陆失败
        for (int i = 0; i < list.size(); i++) {
            User1 user = list.get(i);
            if (user.getUsername().equals(userInfo.getUsername()) && user.getPassword().
                    equals(userInfo.getPassword())) {
                return true;
            }
        }
        return false;
    }
2.生成随机验证码
java">public static String getRandomCode() {
        //1.创建一个集合添加所有的大写字母和小写字母
        ArrayList<Character> list = new ArrayList<>();
        for (int i = 0; i < 26; i++) {
            list.add((char) ('a' + i));
            list.add((char) ('A' + i));
        }

        StringBuilder sb = new StringBuilder();
        //2.随机抽取4个字母
        Random r = new Random();
        String code = "";
        for (int i = 0; i < 4; i++) {
            //获取随机索引
            int index = r.nextInt(list.size());
            //获取随机字符
            char c = list.get(index);
            //添加到字符串中
            sb.append(c);
        }
        //3.把一个随机数字添加到末尾
        int number = r.nextInt(10);
        sb.append(number);
        //4.如果我们要修改字符串中的内容
        //先把字符串变成字符数组,在数组中修改,然后把字符数组变成字符串
        char[] chars = sb.toString().toCharArray();
        //拿着最后一个索引,跟随机索引进行交换
        int index2 = r.nextInt(chars.length);
        char temp = chars[index2];
        chars[index2] = chars[chars.length - 1];
        chars[chars.length - 1] = temp;
        //5.把字符数组变成字符串
        String result = new String(chars);
        return result;
    }

登录完整代码
java">private static void login(ArrayList<User1> list) {
        System.out.println("登录");
        Scanner sc = new Scanner(System.in);
        //1.键盘录入用户名
        while (true) {
            System.out.println("请输入用户名:");
            String username = sc.next();
            //判断用户名是否存在
            boolean result = checkUsernameIsExist(username, list);
            if (!result) {
                System.out.println("用户名"+username+"不存在,请先注册再登录");
                return;
            }
            //2.输入密码和验证码
            System.out.println("请输入密码:");
            String password = sc.next();

            while (true) {
                //输入验证码
                String rightcode = getRandomCode();
                System.out.println("验证码:"+rightcode);
                System.out.println("请输入验证码:");
                String code = sc.next();

                //比较验证码
                String randomCode = getRandomCode();
                if (code.equalsIgnoreCase(rightcode)) {
                    System.out.println("验证码正确");
                    break;
                } else {
                    System.out.println("验证码错误");
                    return;
                }
            }
            //3.判断用户名和密码是否正确
            //封装思想的应用:
            //我们把一些零散的数据,封装成一个对象
            //以后传递参数的时候,只要传递一个整体就可以了,不需要管这些零散的数据
            User1 userInfo = new User1(username, password,null,null);
            if (checkUserInfo(userInfo, list)) {
                System.out.println("登录成功,欢迎使用学生管理系统");
            } else {
                System.out.println("用户名或密码错误");
            }
        }
    }
3.忘记密码
1.根据用户名和身份证号和手机号查找用户的索引
java">private static int findUserIndex(String username, ArrayList<User1> list) {
        for (int i = 0; i < list.size(); i++) {
            User1 user = list.get(i);
            if (user.getUsername().equals(username)) {
                return i;
            }
        }
        return -1;
    }
2.忘记密码整体代码
java">private static void forgetPassword(ArrayList<User1> list) {
        System.out.println("忘记密码");
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入用户名:");
        String username = sc.next();
        boolean flag = checkUsernameIsExist(username, list);
        if (!flag) {
            System.out.println("用户名"+username+"不存在,请先注册再登录");
            return;
        }
        System.out.println("请输入身份证号:");
        String personID = sc.next();
        System.out.println("请输入手机号:");
        String phoneNumber = sc.next();

        //比较用户名和身份证号和手机号是否正确
        int index = findUserIndex(username, list);
        User1 user = list.get(index);
        if (user.getPhoneNumber().equals(phoneNumber) && user.getPersonID().equalsIgnoreCase(personID)) {
            System.out.println("用户名或身份证号或手机号错误");
            return;
        }
        //修改密码
        String password;
        while (true) {
            System.out.println("请输入新密码:");
            password = sc.next();
            System.out.println("请再次输入新密码:");
            String password2 = sc.next();
            if (password.equals(password2)) {
                System.out.println("两次密码一致,修改成功");
                break;
            } else {
                System.out.println("密码输入错误,请重新输入:");
                continue;
            }
        }
        //修改密码
        user.setPassword(password);
        System.out.println("密码修改成功");

    }

3.测试类完整代码

java">import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;

public class StudentUpdate {
    public static void main(String[] args) {

        //1.登录界面
        System.out.println("欢迎使用学生管理系统");
        System.out.println("请选择操作:1.登录 2.注册 3.忘记密码 4.退出");
        ArrayList<User1> list = new ArrayList<>();
        Scanner sc = new Scanner(System.in);
        String choose = sc.next();
        while (true) {
            switch (choose) {
                case "1":
                    login(list);
                    break;
                case "2":
                    register(list);
                    break;
                case "3":
                    forgetPassword(list);
                    break;
                    case "4":
                    System.out.println("退出系统");
                    System.exit(0);
                default:
                    System.out.println("输入有误");
            }
            //重新获取输入
            System.out.println("请选择操作:1.登录 2.注册 3.忘记密码 4.退出");
            choose = sc.next();
        }
    }

    //注册
    public static void register(ArrayList<User1> list) {
        System.out.println("注册");
        User1 user = new User1();
        //1.键盘录入用户名
        Scanner sc = new Scanner(System.in);
        String username ;
        while (true) {
            System.out.println("请输入用户名:");
            username = sc.next();
            //开发细节:先验证格式是否正确,再验证是否唯一
            //因为在以后的所有数据,都是存在数据库中,如果我们要校验,需要使用网络资源

            boolean flag1 = checkUsername(username);
            if (!flag1) {
                System.out.println("用户名格式不正确,请重新输入:");
                continue;
            }
            //用户名格式正确,需要验证是否唯一
            boolean flag2 = checkUsernameIsExist(username, list);
            if (flag2) {
                //用户名已存在
                System.out.println("用户名"+username+"已经存在,请重新输入:");
            } else {
                //不存在,可用
                System.out.println("用户名"+username+"可以使用");
            }
            break;
        }

        //2.键盘录入密码
        String password ;
        while (true) {
            System.out.println("请输入密码:");
            password = sc.next();
            System.out.println("请再次输入密码:");
            String password2 = sc.next();
            if (password.equals(password2)) {
                System.out.println("密码输入正确");
                break;
            } else {
                System.out.println("密码输入错误,请重新输入:");
                continue;
            }
        }

        //3.键盘录入身份证号
        String personID ;
        while (true) {
            System.out.println("请输入身份证号:");
            personID = sc.next();
            boolean flag3 = checkPersonID(personID);
            if (flag3) {
                System.out.println("身份证号格式正确");
                break;
            } else {
                System.out.println("身份证号格式不正确,请重新输入:");
                continue;
            }
        }

        //4.键盘录入手机号
        String phoneNumber ;
        while (true) {
            System.out.println("请输入手机号:");
            phoneNumber = sc.next();
            boolean flag4 = checkPhoneNumber(phoneNumber);
            if (flag4) {
                System.out.println("手机号格式正确");
                break;
            } else {
                System.out.println("手机号格式不正确,请重新输入:");
                continue;
            }
        }

        //将用户对象添加到集合中
        User1 user1 = new User1(username, password, personID, phoneNumber);
        list.add(user1);
        System.out.println("注册成功");
    }

    //检查用户名格式是否正确
    private static boolean checkUsername (String username){
        //用户名必须是3-15位的数字和字母
        int length = username.length();
        if (length < 3 || length > 15) {
            System.out.println("用户名必须是5-15位的数字和字母");
            return false;
        }
        //用户名必须是数字和字母组成
        int count = 0;
        for (int i = 0; i < username.length(); i++) {
            char c = username.charAt(i);
            if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) {
                count++;
                break;
            }
        }
        //用户名满足要求
        return count > 0;
    }

    //检查用户名是否唯一
    private static boolean checkUsernameIsExist(String username, ArrayList<User1> list) {
        //遍历集合,获取每一个用户名,和输入的用户名进行比较
        for (int i = 0; i < list.size(); i++) {
            User1 user = list.get(i);
            String name = user.getUsername();
            if (name.equals(username)) {
                return true;
            }
        }
        return false;
    }

    //检查身份证号格式是否正确
    private static boolean checkPersonID(String personID) {
        //身份证号必须是18位的数字和字母
        int length = personID.length();
        if (length != 18) {
            System.out.println("身份证号必须是18位的数字和字母");
            return false;
        }
        //不能以0开头
        if (personID.startsWith("0")) {
            System.out.println("身份证号不能以0开头");
            return false;
        }
        //前17位必须是数字
        for (int i = 0; i < personID.length() - 1; i++) {
            char c = personID.charAt(i);
            if (!(c >= '0' && c <= '9')) {
                System.out.println("身份证号前17位必须是数字");
                return false;
            }
        }
        //最后一位可以是数字或者大写X或者小写x
        char c = personID.charAt(personID.length() - 1);
        if ((c >= '0' && c <= '9') || (c == 'X') || (c =='x')) {
            return true;
        } else {
            return false;
        }
    }

    //检查手机号格式是否正确
    private static boolean checkPhoneNumber(String phoneNumber) {
        //手机号必须是11位的数字
        int length = phoneNumber.length();
        if (length!= 11) {
            System.out.println("手机号必须是11位的数字");
            return false;
        }
        //不能以0开头
        if (phoneNumber.startsWith("0")) {
            System.out.println("手机号不能以0开头");
            return false;
        } else {
            return true;
        }
    }



    //登录
    private static void login(ArrayList<User1> list) {
        System.out.println("登录");
        Scanner sc = new Scanner(System.in);
        //1.键盘录入用户名
        while (true) {
            System.out.println("请输入用户名:");
            String username = sc.next();
            //判断用户名是否存在
            boolean result = checkUsernameIsExist(username, list);
            if (!result) {
                System.out.println("用户名"+username+"不存在,请先注册再登录");
                return;
            }
            //2.输入密码和验证码
            System.out.println("请输入密码:");
            String password = sc.next();

            while (true) {
                //输入验证码
                String rightcode = getRandomCode();
                System.out.println("验证码:"+rightcode);
                System.out.println("请输入验证码:");
                String code = sc.next();

                //比较验证码
                String randomCode = getRandomCode();
                if (code.equalsIgnoreCase(rightcode)) {
                    System.out.println("验证码正确");
                    break;
                } else {
                    System.out.println("验证码错误");
                    return;
                }
            }
            //3.判断用户名和密码是否正确
            //封装思想的应用:
            //我们把一些零散的数据,封装成一个对象
            //以后传递参数的时候,只要传递一个整体就可以了,不需要管这些零散的数据
            User1 userInfo = new User1(username, password,null,null);
            if (checkUserInfo(userInfo, list)) {
                System.out.println("登录成功,欢迎使用学生管理系统");
            } else {
                System.out.println("用户名或密码错误");
            }
        }
    }

    //检查用户名和密码是否正确
    private static boolean checkUserInfo(User1 userInfo, ArrayList<User1> list) {
        //遍历集合,判断用户是否存在,如果不存在登陆失败
        for (int i = 0; i < list.size(); i++) {
            User1 user = list.get(i);
            if (user.getUsername().equals(userInfo.getUsername()) && user.getPassword().
                    equals(userInfo.getPassword())) {
                return true;
            }
        }
        return false;
    }


    //生成随机验证码
    public static String getRandomCode() {
        //1.创建一个集合添加所有的大写字母和小写字母
        ArrayList<Character> list = new ArrayList<>();
        for (int i = 0; i < 26; i++) {
            list.add((char) ('a' + i));
            list.add((char) ('A' + i));
        }

        StringBuilder sb = new StringBuilder();
        //2.随机抽取4个字母
        Random r = new Random();
        String code = "";
        for (int i = 0; i < 4; i++) {
            //获取随机索引
            int index = r.nextInt(list.size());
            //获取随机字符
            char c = list.get(index);
            //添加到字符串中
            sb.append(c);
        }
        //3.把一个随机数字添加到末尾
        int number = r.nextInt(10);
        sb.append(number);
        //4.如果我们要修改字符串中的内容
        //先把字符串变成字符数组,在数组中修改,然后把字符数组变成字符串
        char[] chars = sb.toString().toCharArray();
        //拿着最后一个索引,跟随机索引进行交换
        int index2 = r.nextInt(chars.length);
        char temp = chars[index2];
        chars[index2] = chars[chars.length - 1];
        chars[chars.length - 1] = temp;
        //5.把字符数组变成字符串
        String result = new String(chars);
        return result;
    }

   //忘记密码
    private static void forgetPassword(ArrayList<User1> list) {
        System.out.println("忘记密码");
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入用户名:");
        String username = sc.next();
        boolean flag = checkUsernameIsExist(username, list);
        if (!flag) {
            System.out.println("用户名"+username+"不存在,请先注册再登录");
            return;
        }
        System.out.println("请输入身份证号:");
        String personID = sc.next();
        System.out.println("请输入手机号:");
        String phoneNumber = sc.next();

        //比较用户名和身份证号和手机号是否正确
        int index = findUserIndex(username, list);
        User1 user = list.get(index);
        if (user.getPhoneNumber().equals(phoneNumber) && user.getPersonID().equalsIgnoreCase(personID)) {
            System.out.println("用户名或身份证号或手机号错误");
            return;
        }
        //修改密码
        String password;
        while (true) {
            System.out.println("请输入新密码:");
            password = sc.next();
            System.out.println("请再次输入新密码:");
            String password2 = sc.next();
            if (password.equals(password2)) {
                System.out.println("两次密码一致,修改成功");
                break;
            } else {
                System.out.println("密码输入错误,请重新输入:");
                continue;
            }
        }
        //修改密码
        user.setPassword(password);
        System.out.println("密码修改成功");

    }

    //根据用户名和身份证号和手机号查找用户的索引
    private static int findUserIndex(String username, ArrayList<User1> list) {
        for (int i = 0; i < list.size(); i++) {
            User1 user = list.get(i);
            if (user.getUsername().equals(username)) {
                return i;
            }
        }
        return -1;
    }
}


3.总结思考

1.总体框架

这个其实比较好思考,switch直接分几个板块,然后再分别写方法类。
难的是具体代码的实现,需要用到的条件判断,关系语句,还有各种循环嵌套。
尤其是continue,break,return各自运用的时候。(是的,总踩坑。)
while(true)一定要记得break,否则下面的代码就会报错。(无法到达此语句)

2.具体细节

调用的API必须明白同类不同名之间的不同,比如equals和另外一个不区分大小写的。
心里必须清楚自己所命名的各个变量表示的真实含义,比较做判断的时候避免误用。
条件语句中,重要的是字符之间的表现形式:都是数字,必须有字母,大小写什么的。
结束后能重新输入,就需要用到while(true)。
循环结束后才能进行判断的,需要在循环外返回。
flag作为判断值,要自己弄明白true和false各具体代表什么,不同板块需要换不同的名称表示判断值。
还有,方法类中不要加输出语句。(痛)

3.最后

总之就是多动脑。
写不出来就画个图,然后想想每个变量之间的联系。
每个代码块感觉可以变成简单的算法题,所以又拆开复制了一遍。
其实每个大的系统都是由这种基础的代码块拼凑成的。
(终于搞完了,谢天谢地)


http://www.niftyadmin.cn/n/5864876.html

相关文章

【多语言生态篇六】【DeepSeek×Node.js:WebSocket实时服务从入门到“超神“指南(史诗级万字拆解)】

各位WebSocket老司机们系好安全带!今天我们要把《DeepSeekNode.js:WebSocket实时服务》这本"武功秘籍"揉碎了掰开了讲。从单机玩具到百万级并发,从握手原理到熔断限流,咱们边撸代码边开车,全程高能无尿点! 一、开篇暴击:WebSocket的"真香"现场 先来…

深度学习入门--神经网络

初学&#xff0c;若有错误&#xff0c;恳请指正。 目录 初学&#xff0c;若有错误&#xff0c;恳请指正。 3.1 从感知机到神经网络 3.1.1 神经网络的例子 3.1.2 复习感知机 3.1.3 激活函数登场 3.2 激活函数 3.2.1 sigmoid 函数 3.2.2 阶跃函数的实现 3.2.3 阶跃函数…

合理建模--最短路径

这道题目难就难在如何想到用最短路径来做 主要是这个题目不能用bfs来写&#xff0c;因为距离并不是1 狄克斯特拉算法很久没写了&#xff0c;有些地方生疏了 且这个题目需要记录三个信息&#xff0c;得用tuple 题目地址 int dx[] {0,0,1,-1};int dy[] {1,-1,0,0}; class Solut…

【漫话机器学习系列】103.学习曲线(Learning Curve)

学习曲线&#xff08;Learning Curve&#xff09;详解 1. 什么是学习曲线&#xff1f; 学习曲线&#xff08;Learning Curve&#xff09;是机器学习和深度学习领域中用于评估模型性能随训练过程变化的图示。它通常用于分析模型的学习能力、是否存在过拟合或欠拟合等问题。 从…

基于数据可视化学习的卡路里消耗预测分析

数据分析实操集合&#xff1a; 1、关于房间传感器监测数据集的探索 2、EEMD-LSTM模型择时策略 — 1.EEMD分解与LSTM模型搭建 3、EEMD-LSTM模型择时策略 — 2. 量化回测 4、国际超市电商销售数据分析 5、基于问卷调查数据的多元统计数据分析与预测&#xff08;因子分析、对应分…

在Ubuntu 20上使用vLLM部署DeepSeek大模型的完整指南

文章目录 步骤一&#xff1a;安装Hugging Face工具步骤二&#xff1a;下载DeepSeek模型步骤三&#xff1a;安装vLLM步骤四&#xff1a;使用vLLM部署模型步骤五&#xff1a;测试推理服务性能优化建议常见问题排查 前言 随着大语言模型&#xff08;LLM&#xff09;的快速发展&…

数仓搭建实操(传统数仓oracle):DWD数据明细层

数据处理思路 DWD层, 数据明细层>>数据清洗转换, 区分事实表,维度表 全是事实表,没有维度表>>不做处理 数据清洗>>数据类型varchar 变成varchar2, 日期格式统一(时间类型变成varchar2); 字符数据去空格 知识补充: varchar 存储定长字符类型 ; 存储的数据会…

jar、war、pom

1. <packaging>jar</packaging> 定义与用途 用途&#xff1a;默认打包类型&#xff0c;生成 JAR 文件&#xff08;Java Archive&#xff09;&#xff0c;适用于普通 Java 应用或库。 场景&#xff1a; 开发工具类库&#xff08;如 commons-lang.jar&#xff09;。…