第一步先下载连接数据库的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;
}
}
}