【后端】JAVA模拟用户登录小练习

JAVA模拟用户登录小练习

需求:键盘输入账户密码,验证登录成功与否:

配置文件与工具类在上一篇我的上一篇文章内有。

需求代码实现:

import java.sql.*;
import java.util.Scanner;

/**
 * 通过键盘录入用户名和密码
 * 判断登录是否成功
 */
public class jdbcdemo8 {
    public static void main(String[] args) {
        //1.键盘录入,输入账户和密码
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入账户!");
        String username = scanner.nextLine();
        System.out.println("请输入密码!");
        String password = scanner.nextLine();
        //调用查询方法
        boolean login = new jdbcdemo8().login(username, password);
        //判断并输出结果
        if (login) {
            System.out.println("登录成功!");
        } else {
            System.out.println("用户名或密码错误!");
        }


    }

    /**
     * 登录方法
     *
     * @param username
     * @param password
     * @return
     */
    Connection connections = null;
    Statement statement = null;
    ResultSet resultSet = null;

    public boolean login(String username, String password) {
        //如果账户和密码其中为空则返回false 用短路或
        if (username == null || password == null) {
            return false;
        }
        //连接数据库判断是否成功
        //第一步获取连接 使用工具类
        try {
            connections = JDBC_utils.getConnections();
            //第二步 定义sql语句 使用字符变量连接符++
            String sql = "select * from user where username = '" + username + "'  and password = '" + password + "'   ";
            //第三步获取执行sql语句的对象
            statement = connections.createStatement();
            //第四步执行sql语句
            resultSet = statement.executeQuery(sql);
            //第五步判断查询结果返回布尔值
            return resultSet.next();//ResultSet.next()返回布尔值


        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JDBC_utils.Close(resultSet, statement, connections);//利用工具类进行释放资源
        }


        return false;
    }
}

第二种 防止sql注入的登录方式

import java.sql.*;
import java.util.Scanner;

/**
 * 通过键盘录入用户名和密码
 * 判断登录是否成功
 */
public class jdbcdemo8 {
    public static void main(String[] args) {
        //1.键盘录入,输入账户和密码
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入账户!");
        String username = scanner.nextLine();
        System.out.println("请输入密码!");
        String password = scanner.nextLine();
        //调用查询方法
        boolean login = new jdbcdemo8().login(username, password);
        //判断并输出结果
        if (login) {
            System.out.println("登录成功!");
        } else {
            System.out.println("用户名或密码错误!");
        }


    }

    /**
     * 登录方法
     *
     * @param username
     * @param password
     * @return
     */
    Connection connections = null;
    PreparedStatement preparedStatement = null;
    ResultSet resultSet = null;

    public boolean login(String username, String password) {
        //如果账户和密码其中为空则返回false 用短路或
        if (username == null || password == null) {
            return false;
        }
        //连接数据库判断是否成功
        //第一步获取连接 使用工具类
        try {
            connections = JDBC_utils.getConnections();
            //第二步 定义sql语句 使用字符变量连接符++
            String sql = "select * from user where username =? and password =?";

            //第三步获取执行sql语句的对象
//            statement = connections.createStatement();
            preparedStatement = connections.prepareStatement(sql);//防止sql注入的执行sql对象
            preparedStatement.setString(1,username);
            preparedStatement.setString(2,password);
            //第四步执行sql语句
            resultSet = preparedStatement.executeQuery();
            //第五步判断查询结果返回布尔值
            return this.resultSet.next();//ResultSet.next()返回布尔值


        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JDBC_utils.Close(resultSet, preparedStatement, connections);//利用工具类进行释放资源
        }


        return false;
    }
}
发布了30 篇原创文章 · 获赞 0 · 访问量 482

猜你喜欢

转载自blog.csdn.net/zhujile521/article/details/105227769