JAVA 创建简单的登录界面并且连接数据库

第一步先下载连接数据库的jar

1. 网站:MySQL连接网址  

2. 下载时要注意!!!!

 

 3. 下载好了 就打开文件所在位置把图中的jar拉出来放到桌面上 这样比较方便,不搞也可以。

 

 

 4. 注意红线,打开Java软件新建项目,名称:DENG_LU,把刚刚桌面的jar放到相同路径

 

 5.如图下操作。

 。

 

 6. 一样

 

7. 完成数据库连接,等一下测试完成连接没有。

8. 代码测试

private boolean validateLogin(String username, String password) {
        // 数据库连接信息
        String url = "jdbc:mysql://localhost:3306/si?serverTimezone=UTC";
        String dbUser = "root";
        String dbPassword = "123123";

        try (Connection conn = DriverManager.getConnection(url, dbUser, dbPassword);
             PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM login WHERE name = ? AND password = ?")) {

            pstmt.setString(1, username);
            pstmt.setString(2, password);

            try (ResultSet rs = pstmt.executeQuery()) {
                return rs.next(); // 如果查询结果有数据,返回 true,表示验证成功
            }
        } catch (SQLException e) {
            e.printStackTrace();
            JOptionPane.showMessageDialog(null, "数据库连接失败: " + e.getMessage(), "错误", JOptionPane.ERROR_MESSAGE);
            return false;
        }
    }

第二步 完整的登录代码

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class Main {
    public static void main(String[] args) {
        new LoginFrame().setVisible(true);
    }
}

class LoginFrame extends JFrame {
    private JButton loginBtn;
    private JPasswordField passwordField;
    private JTextField usernameField;

    public LoginFrame() {
        init();
    }

    private void init() {
        // 设置窗体大小
        setSize(650, 400);
        // 显示设置 默认居中显示
        setLocationRelativeTo(null);
        // 设置绝对布局
        setLayout(null);
        // 设置标题
        setTitle("用户登录模拟器");
        // 设置关闭窗体时退出程序
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        // 设置禁止改变窗体大小
        setResizable(false);
        // 设置背景
        getContentPane().setBackground(Color.decode("#f1f9f9"));

        // 创建“模拟器”标签
        JLabel titleLabel = new JLabel("模拟器");
        titleLabel.setBounds(170, 30, 400, 100);
        Font font1 = new Font("楷体", Font.PLAIN + Font.BOLD, 50);
        titleLabel.setFont(font1);
        add(titleLabel);

        // 创建“用户名”标签
        JLabel usernameLabel = new JLabel("用户名:");
        usernameLabel.setBounds(200, 140, 80, 50);
        Font font = new Font("楷体", Font.PLAIN, 20);
        usernameLabel.setFont(font);
        add(usernameLabel);

        // 创建用户名输入框
        usernameField = new JTextField("");
        usernameField.setBounds(280, 140, 140, 50);
        usernameField.setFont(font);
        add(usernameField);

        // 创建“密码”标签
        JLabel passwordLabel = new JLabel("密码:");
        passwordLabel.setBounds(210, 195, 80, 50);
        passwordLabel.setFont(font);
        add(passwordLabel);

        // 创建密码输入框
        passwordField = new JPasswordField("");
        passwordField.setBounds(280, 195, 140, 50);
        passwordField.setFont(font);
        add(passwordField);

        // 创建“登录”按钮
        loginBtn = new JButton("登录");
        loginBtn.setBounds(450, 170, 70, 40);
        Font font2 = new Font("楷体", Font.PLAIN, 15);
        loginBtn.setFont(font2);
        add(loginBtn);

        // 添加登录按钮的事件监听器
        loginBtn.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                // 这里添加登录验证逻辑
                if (validateLogin(usernameField.getText(), new String(passwordField.getPassword()))) {
                    JOptionPane.showMessageDialog(null, "登录成功", "消息", JOptionPane.INFORMATION_MESSAGE);
                    // 可以在这里添加跳转到主界面的逻辑
                } else {
                    JOptionPane.showMessageDialog(null, "登录失败", "消息", JOptionPane.ERROR_MESSAGE);
                }
            }
        });
    }

    private boolean validateLogin(String username, String password) {
        // 数据库连接信息
        String url = "jdbc:mysql://localhost:3306/si?serverTimezone=UTC";
        String dbUser = "root";
        String dbPassword = "123123";

        try (Connection conn = DriverManager.getConnection(url, dbUser, dbPassword);
             PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM login WHERE name = ? AND password = ?")) {

            pstmt.setString(1, username);
            pstmt.setString(2, password);

            try (ResultSet rs = pstmt.executeQuery()) {
                return rs.next(); // 如果查询结果有数据,返回 true,表示验证成功
            }
        } catch (SQLException e) {
            e.printStackTrace();
            JOptionPane.showMessageDialog(null, "数据库连接失败: " + e.getMessage(), "错误", JOptionPane.ERROR_MESSAGE);
            return false;
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值