其他分享
首页 > 其他分享> > JDBC用户登录业务实现Plus版

JDBC用户登录业务实现Plus版

作者:互联网

JDBC用户登录业务实现

一、初始化用户界面

package com.happy.lesson1;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class JDBCTest06 {
    public static void main(String[] args) {
        //初始化用户界面(说白了就是定义一个方法用来接收用户输入的账号和密码)
        Map<String,String> userLoginInfo = initUI();
        //验证用户名和密码
    }

    private static Map<String,String> initUI() {
        Scanner sc = new Scanner(System.in);

        //接收用户名
        System.out.println("请输入用户名:");
        String loginName = sc.nextLine();
        //接收密码
        System.out.println("请输入密码:");
        String loginPwd = sc.nextLine();

        //定义一个集合存放用户名和密码
        Map<String, String> userLoginInfo = new HashMap<String, String>();

        userLoginInfo.put("loginName",loginName);
        userLoginInfo.put("loginPwd",loginPwd);

        return userLoginInfo;
    }
}

运行结果:

二、登录方法的实现

说白了就是定义一个方法,验证用户名和密码,并且返回Boolean值

这是整体代码:

package com.happy.lesson1;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.Scanner;

public class JDBCTest06 {
    public static void main(String[] args) throws Exception {
        //初始化用户界面(说白了就是定义一个方法用来接收用户输入的账号和密码)
        Map<String,String> userLoginInfo = initUI();
        //验证用户名和密码
        //定义一个方法接收集合,并返回boolean值
        boolean loginSuccess = login(userLoginInfo);

        System.out.println(loginSuccess?"登录成功":"登录失败");
    }

    private static boolean login(Map<String, String> userLoginInfo) throws Exception {
        //不是一开始想到的,而是处理结果集需要打标点,然后跳转到这里继续写代码
        boolean loginSuccess = false;
        //JDBC编程6步
        ResourceBundle jdbc = ResourceBundle.getBundle("JDBC");
        String driver = jdbc.getString("driver");
        String url = jdbc.getString("url");
        String user = jdbc.getString("user");
        String password = jdbc.getString("password");
        //1.注册驱动
        Class.forName(driver);
        //2.获取连接
        Connection conn = DriverManager.getConnection(url, user, password);
        //3.获取数据库操作对象
        Statement stmt = conn.createStatement();
        //4.执行sql
        String loginName = userLoginInfo.get("loginName");
        String loginPwd = userLoginInfo.get("loginPwd");

        String sql = "select * from t_user where loginName = '"+loginName+"' and loginPwd = '"+loginPwd+"'";
        ResultSet rs = stmt.executeQuery(sql);
        //5.处理结果集
        if (rs.next()){
            //登录成功 --> 想到打标点 回到 前面定义一个boolean标点
            //将标点改变boolean值
            loginSuccess = true;
        }

        //6.关闭资源
        rs.close();
        stmt.close();
        conn.close();
        //先关闭资源再返回值
        return loginSuccess;
    }

    private static Map<String,String> initUI() {
        Scanner sc = new Scanner(System.in);

        //接收用户名
        System.out.println("请输入用户名:");
        String loginName = sc.nextLine();
        //接收密码
        System.out.println("请输入密码:");
        String loginPwd = sc.nextLine();

        //定义一个集合存放用户名和密码
        Map<String, String> userLoginInfo = new HashMap<String, String>();

        userLoginInfo.put("loginName",loginName);
        userLoginInfo.put("loginPwd",loginPwd);

        return userLoginInfo;
    }
}

这是实现登录验证的代码部分:

private static boolean login(Map<String, String> userLoginInfo) throws Exception {
        //不是一开始想到的,而是处理结果集需要打标点,然后跳转到这里继续写代码
        boolean loginSuccess = false;
        //JDBC编程6步
        ResourceBundle jdbc = ResourceBundle.getBundle("JDBC");
        String driver = jdbc.getString("driver");
        String url = jdbc.getString("url");
        String user = jdbc.getString("user");
        String password = jdbc.getString("password");
        //1.注册驱动
        Class.forName(driver);
        //2.获取连接
        Connection conn = DriverManager.getConnection(url, user, password);
        //3.获取数据库操作对象
        Statement stmt = conn.createStatement();
        //4.执行sql
        String loginName = userLoginInfo.get("loginName");
        String loginPwd = userLoginInfo.get("loginPwd");

        String sql = "select * from t_user where loginName = '"+loginName+"' and loginPwd = '"+loginPwd+"'";
        ResultSet rs = stmt.executeQuery(sql);
        //5.处理结果集
        if (rs.next()){
            //登录成功 --> 想到打标点 回到 前面定义一个boolean标点
            //将标点改变boolean值
            loginSuccess = true;
        }

        //6.关闭资源
        rs.close();
        stmt.close();
        conn.close();
        //先关闭资源再返回值
        return loginSuccess;
    }

三、数据库数据

四、运行

运行结果(正确输入):

运行结果(错误输入):

五、个人理解

1、用户输入账号和密码,数据保存在一个集合中

举例:用户输入账号:test,密码:123

那么就会放入2个键值对,loginName(键)--test(值)、loginPwd(键)--123(值)

2、sql执行

String loginName = userLoginInfo.get("loginName");
String loginPwd = userLoginInfo.get("loginPwd");

String sql = "select * from t_user where loginName = '"+loginName+"' and loginPwd = '"+loginPwd+"'";

String loginName获取的是真实的数值test,String loginPwd获取的是真实的数值123,sql语句会根据这两个条件去数据库的表格查询是否符合条件,如果符合就会有结果集

//sql语句执行并返回结果集
ResultSet rs = stmt.executeQuery(sql);
//5.处理结果集
if (rs.next()){
    //登录成功 --> 想到打标点 回到 前面定义一个boolean标点
    //将标点改变boolean值
    loginSuccess = true;
}

3、要学会打标点的思想

标签:loginName,String,登录,boolean,userLoginInfo,JDBC,Plus,sql,loginPwd
来源: https://www.cnblogs.com/happy-lin/p/14984898.html