java数据库实现登录功能的方法

使用Java连接数据库,执行查询验证用户名和密码是否匹配,若匹配则登录成功,否则提示错误信息。

需求分析

实现一个Java程序,通过数据库连接和操作,实现用户登录功能,具体需求如下:

1、用户输入用户名和密码;

java数据库实现登录功能的方法

2、程序查询数据库中是否存在该用户;

3、如果存在,验证密码是否正确;

4、如果正确,显示登录成功,否则显示登录失败。

技术选型

1、数据库:MySQL

2、JDBC驱动:MySQL Connector/J

java数据库实现登录功能的方法

3、Java开发工具:IntelliJ IDEA

数据库设计

1、创建一个名为user的表,包含以下字段:

id:主键,自增长

username:用户名,唯一,不允许为空

password:密码,不允许为空

java数据库实现登录功能的方法

Java代码实现

1、导入相关依赖包:

<!pom.xml >
<dependencies>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysqlconnectorjava</artifactId>
        <version>8.0.26</version>
    </dependency>
</dependencies>

2、编写数据库连接工具类DBUtil

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBUtil {
    private static final String URL = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC";
    private static final String USER = "root";
    private static final String PASSWORD = "your_password";
    public static Connection getConnection() {
        Connection connection = null;
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            connection = DriverManager.getConnection(URL, USER, PASSWORD);
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        }
        return connection;
    }
}

3、编写用户登录功能类Login

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;
public class Login {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入用户名:");
        String username = scanner.nextLine();
        System.out.println("请输入密码:");
        String password = scanner.nextLine();
        login(username, password);
    }
    public static void login(String username, String password) {
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
        try {
            connection = DBUtil.getConnection();
            String sql = "SELECT * FROM user WHERE username = ?";
            preparedStatement = connection.prepareStatement(sql);
            preparedStatement.setString(1, username);
            resultSet = preparedStatement.executeQuery();
            if (resultSet.next()) {
                String dbPassword = resultSet.getString("password");
                if (dbPassword != null && dbPassword.equals(password)) {
                    System.out.println("登录成功!");
                } else {
                    System.out.println("密码错误!");
                }
            } else {
                System.out.println("用户名不存在!");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (resultSet != null) {
                    resultSet.close();
                }
                if (preparedStatement != null) {
                    preparedStatement.close();
                }
                if (connection != null) {
                    connection.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

测试与部署

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/642554.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希的头像未希新媒体运营
上一篇 2024-05-21 15:18
下一篇 2024-05-21 15:20

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入