Java案例 JDBC+MySQL简单快速实现用户登录功能

1,第一步准备JDBC对应数据库的jar包我这里准备的是mysql的环境

这是mysql对应的jar包:https://downloads.mysql.com/archives/c-j/

下载完成后解压

        把jar包引入到项目当中去这以idea教育版为例

        打开项目结构

导入解压的MySQL的jar 文件

 2,初始化部分完毕现在开始准备代码部分

       其中MySQL的环境部分会专门出一期进行简单讲解

主函数部分,里面主要包括了两个函数一个用来获得用户输入,一个对比用户账号密码是否正确

这两个函数会分开讲解

主函数

public static void main(String[] args) throws SQLException {

        //这里使用map做返回值是为了后面更方便的比较账号密码是否正确
        Map<String,String> val=intoUI();

        //这个方法使用JDBC去判断账号密码是否正确
        boolean islogin= tologin(val);

        //输出成功或失败的语句
        System.out.println(islogin?"登录成功":"登录失败账号或密码错误");
    }

 intoUI() 函数以map的形式获得用户的输入信息

private static Map<String, String> intoUI() {

        //创建map类用来存储用户输入
        Map<String,String> m=new HashMap<>();

        //创建键盘输入流对象
        Scanner sc=new Scanner(System.in);

        //获得用户输入账号
        System.out.println("请输入账号:");
        String login=sc.nextLine();

        //获得用户输入密码
        System.out.println("请输入密码:");
        String password=sc.nextLine();

        //将账号密码存到map当中去
        m.put("login",login);
        m.put("password",password);
        
        return m;
    }

 tologin()函数去mysql中验证账号密码是否正确

private static boolean tologin(Map<String,String> m) throws SQLException {
        //定义好需要在try外面用到的变量
        boolean flat=false;        //这个是判断是否登录成功的标识默认为false
        Connection conn=null;
        Statement statement=null;
        ResultSet rslogin=null;


        try {
          //注册数据库 可以理解为对数据库类型的声明
              DriverManager.registerDriver(new Driver());

          //建立起连接 需要传入的三个值分别为 url user password 
         //url格式(jdbc:mysql://ip地址/数据库名)root(数据库用户名)password(数据库密码)     conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/user","root","shuyu404");

            //根据账号在mysql中进行查询的SQL语句
            String sql1="select password from t_user where uid='"+m.get("login")+"'";
            
            //创建数据库操作对象
            statement = conn.createStatement();

            //让数据库操作对象执行sql语句进行查询并且返回 ResultSet 结果
            rslogin= statement.executeQuery(sql1);

            //判断返回结果是否为空,如果为空则说明没有此账号
            if(rslogin.next()){

                //判断通过查询返回的密码与用户的输入是否一致 如果一致则把标记改为ture
                if(rslogin.getString(1).equals(m.get("password"))){
                    flat=true;
                }
            }

        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
                //对资源由内到外以此关闭
                rslogin.close();
                statement.close();
                conn.close();
        }
        返回判断结果
        return flat;
    }

 现在代码部分结束了让我们运行一下

 

 和数据库中的数据保持一致此案例成功

下面是案例的全部代码

package JDBC;

import com.mysql.cj.jdbc.Driver;
import java.sql.*;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class JDBC实现登录 {
    public static void main(String[] args) throws SQLException {
        Map<String,String> val=intoUI();
        boolean islogin= tologin(val);
        System.out.println(islogin?"登录成功":"登录失败账号或密码错误");
    }
    private static boolean tologin(Map<String,String> m) throws SQLException {
        boolean flat=false;
        Connection conn=null;
        Statement statement=null;
        ResultSet rslogin=null;
        try {
            DriverManager.registerDriver(new Driver());
            conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/user","root","shuyu404");
            String sql1="select password from t_user where uid='"+m.get("login")+"'";
            statement = conn.createStatement();
            rslogin= statement.executeQuery(sql1);
            if(rslogin.next()){
                if(rslogin.getString(1).equals(m.get("password"))){
                    flat=true;
                }
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
                rslogin.close();
                statement.close();
                conn.close();
        }
        return flat;
    }

    private static Map<String, String> intoUI() {
        Map<String,String> m=new HashMap<>();
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入账号:");
        String login=sc.nextLine();
        System.out.println("请输入密码:");
        String password=sc.nextLine();
        m.put("login",login);
        m.put("password",password);
        return m;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_52314655/article/details/120935488