用javaSwing和mysql数据库做的一个登录注册页面
时间: 2024-02-03 15:12:46 浏览: 35
好的,以下是一个简单的Java Swing和MySQL数据库实现登录注册页面的示例代码。
首先,需要创建一个MySQL数据库并在其中创建一个名为“user”的数据表,该表包含以下列:id(int)、username(varchar)、password(varchar)。
接下来,创建一个Java Swing应用程序并添加以下组件:
- 两个文本框,用于输入用户名和密码
- 两个标签,显示用户名和密码文本框的标签
- 两个按钮,一个用于登录,一个用于注册
然后,在Java代码中,使用JDBC连接MySQL数据库并实现登录和注册功能。以下是示例代码:
```java
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;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class LoginRegisterPage extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
private static final String DB_URL = "jdbc:mysql://localhost:3306/mydatabase";
private static final String DB_USER = "root";
private static final String DB_PASSWORD = "123456";
private JLabel usernameLabel, passwordLabel;
private JTextField usernameField;
private JPasswordField passwordField;
private JButton loginButton, registerButton;
public LoginRegisterPage() {
setTitle("Login/Register Page");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
usernameLabel = new JLabel("Username:");
passwordLabel = new JLabel("Password:");
usernameField = new JTextField(20);
passwordField = new JPasswordField(20);
loginButton = new JButton("Login");
registerButton = new JButton("Register");
loginButton.addActionListener(this);
registerButton.addActionListener(this);
setLayout(null);
usernameLabel.setBounds(50, 50, 80, 25);
passwordLabel.setBounds(50, 100, 80, 25);
usernameField.setBounds(150, 50, 150, 25);
passwordField.setBounds(150, 100, 150, 25);
loginButton.setBounds(50, 150, 100, 25);
registerButton.setBounds(200, 150, 100, 25);
add(usernameLabel);
add(passwordLabel);
add(usernameField);
add(passwordField);
add(loginButton);
add(registerButton);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == loginButton) {
String username = usernameField.getText();
String password = new String(passwordField.getPassword());
try (Connection conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
PreparedStatement stmt = conn.prepareStatement("SELECT * FROM user WHERE username = ? AND password = ?")) {
stmt.setString(1, username);
stmt.setString(2, password);
ResultSet rs = stmt.executeQuery();
if (rs.next()) {
JOptionPane.showMessageDialog(this, "Login successful!");
} else {
JOptionPane.showMessageDialog(this, "Invalid username or password!");
}
} catch (SQLException ex) {
ex.printStackTrace();
}
} else if (e.getSource() == registerButton) {
String username = usernameField.getText();
String password = new String(passwordField.getPassword());
try (Connection conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
PreparedStatement stmt = conn.prepareStatement("INSERT INTO user (username, password) VALUES (?, ?)")) {
stmt.setString(1, username);
stmt.setString(2, password);
stmt.executeUpdate();
JOptionPane.showMessageDialog(this, "Registration successful!");
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
public static void main(String[] args) {
new LoginRegisterPage();
}
}
```
这个示例代码中,使用JDBC连接MySQL数据库,并在登录和注册按钮的操作中执行相应的SQL语句。如果登录或注册成功,将弹出一个消息框显示相应的信息。
需要注意的是,这只是一个简单的示例代码,实际应用中需要更多的错误处理和安全性措施,例如密码加密和SQL注入防范等。