用一个包含用户名和密码的登录界面,然后输入用户名和密码去数据库中验证是否正确
时间: 2023-08-06 14:06:56 浏览: 94
好的,我可以为你提供一个简单的 Java 登录界面,并连接数据库验证用户名和密码是否正确的代码示例。
首先,我们需要使用 Java Swing 创建一个登录界面,代码如下:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
public class LoginFrame extends JFrame implements ActionListener {
private JTextField tfUsername;
private JPasswordField pfPassword;
private JButton btnLogin;
private JLabel lblStatus;
public LoginFrame() {
setTitle("登录");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 150);
setLocationRelativeTo(null);
setLayout(new GridLayout(3, 2));
JLabel lblUsername = new JLabel("用户名:");
add(lblUsername);
tfUsername = new JTextField();
add(tfUsername);
JLabel lblPassword = new JLabel("密码:");
add(lblPassword);
pfPassword = new JPasswordField();
add(pfPassword);
btnLogin = new JButton("登录");
btnLogin.addActionListener(this);
add(btnLogin);
lblStatus = new JLabel(" ");
add(lblStatus);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btnLogin) {
String username = tfUsername.getText().trim();
String password = new String(pfPassword.getPassword()).trim();
if (username.isEmpty() || password.isEmpty()) {
lblStatus.setText("用户名和密码不能为空!");
return;
}
try {
// 加载 JDBC 驱动程序
Class.forName("com.mysql.jdbc.Driver");
// 创建数据库连接
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
// 创建 PreparedStatement 对象
String sql = "SELECT * FROM user WHERE username=? AND password=?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, username);
pstmt.setString(2, password);
// 执行查询
ResultSet rs = pstmt.executeQuery();
// 处理查询结果
if (rs.next()) {
lblStatus.setText("登录成功!");
} else {
lblStatus.setText("用户名或密码错误!");
}
// 关闭数据库连接
rs.close();
pstmt.close();
conn.close();
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
public static void main(String[] args) {
LoginFrame frame = new LoginFrame();
frame.setVisible(true);
}
}
```
在上面的代码示例中,我们使用了 Java Swing 创建了一个简单的登录界面,包含用户名和密码输入框、登录按钮和状态标签。
当用户点击登录按钮时,我们从用户名和密码输入框中获取输入的用户名和密码,然后连接数据库,使用 PreparedStatement 对象执行查询,并处理查询结果。如果查询结果中存在对应的用户名和密码,则输出登录成功;否则输出用户名或密码错误。
在上面的代码示例中,我们使用了 PreparedStatement 对象,这是为了防止 SQL 注入攻击。使用 PreparedStatement 对象可以预编译 SQL 语句,并将参数绑定到 SQL 语句中,从而避免了 SQL 注入攻击的风险。