利用java+swing+jdbc做一个登陆注册页面并将数据保存mysql,代码
时间: 2023-07-29 12:10:32 浏览: 57
以下是一个简单的Java Swing登录注册页面并将数据保存到MySQL数据库的示例代码:
首先需要创建一个数据库表来存储用户信息,可以使用以下SQL语句:
```sql
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`password` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
```
然后,创建一个Java项目并添加MySQL驱动程序(如mysql-connector-java-8.0.25.jar)到项目中。
接下来,我们需要创建一个包含登录和注册功能的Java Swing GUI。以下是一个简单的实现:
```java
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.*;
public class LoginRegistrationForm extends JFrame implements ActionListener {
// 登录窗口组件
private JLabel loginLabel = new JLabel("登录");
private JLabel usernameLabel = new JLabel("用户名:");
private JLabel passwordLabel = new JLabel("密码:");
private JTextField usernameField = new JTextField(20);
private JPasswordField passwordField = new JPasswordField(20);
private JButton loginButton = new JButton("登录");
// 注册窗口组件
private JLabel registrationLabel = new JLabel("注册");
private JLabel newUsernameLabel = new JLabel("用户名:");
private JLabel newPasswordLabel = new JLabel("密码:");
private JTextField newUsernameField = new JTextField(20);
private JPasswordField newPasswordField = new JPasswordField(20);
private JButton registrationButton = new JButton("注册");
// 数据库连接属性
private String URL = "jdbc:mysql://localhost:3306/mydb";
private String USERNAME = "root";
private String PASSWORD = "password";
private Connection connection = null;
public LoginRegistrationForm() {
super("登录/注册");
// 创建数据库连接
try {
connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
} catch (SQLException e) {
e.printStackTrace();
}
// 设置窗口组件
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new GridLayout(3, 1));
// 添加登录窗口组件
JPanel loginPanel = new JPanel(new GridLayout(3, 2));
loginPanel.add(loginLabel);
loginPanel.add(new JLabel(""));
loginPanel.add(usernameLabel);
loginPanel.add(usernameField);
loginPanel.add(passwordLabel);
loginPanel.add(passwordField);
loginButton.addActionListener(this);
loginPanel.add(loginButton);
add(loginPanel);
// 添加注册窗口组件
JPanel registrationPanel = new JPanel(new GridLayout(3, 2));
registrationPanel.add(registrationLabel);
registrationPanel.add(new JLabel(""));
registrationPanel.add(newUsernameLabel);
registrationPanel.add(newUsernameField);
registrationPanel.add(newPasswordLabel);
registrationPanel.add(newPasswordField);
registrationButton.addActionListener(this);
registrationPanel.add(registrationButton);
add(registrationPanel);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == loginButton) {
// 验证登录信息
String username = usernameField.getText();
String password = String.valueOf(passwordField.getPassword());
try {
PreparedStatement statement = connection.prepareStatement(
"SELECT * FROM user WHERE username=? AND password=?"
);
statement.setString(1, username);
statement.setString(2, password);
ResultSet resultSet = statement.executeQuery();
if (resultSet.next()) {
JOptionPane.showMessageDialog(
this, "登录成功", "提示", JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(
this, "用户名或密码错误", "错误", JOptionPane.ERROR_MESSAGE);
}
} catch (SQLException ex) {
ex.printStackTrace();
}
} else if (e.getSource() == registrationButton) {
// 插入新用户信息
String newUsername = newUsernameField.getText();
String newPassword = String.valueOf(newPasswordField.getPassword());
try {
PreparedStatement statement = connection.prepareStatement(
"INSERT INTO user (username, password) VALUES (?, ?)"
);
statement.setString(1, newUsername);
statement.setString(2, newPassword);
int rowsInserted = statement.executeUpdate();
if (rowsInserted > 0) {
JOptionPane.showMessageDialog(
this, "注册成功", "提示", JOptionPane.INFORMATION_MESSAGE);
}
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
public static void main(String[] args) {
new LoginRegistrationForm();
}
}
```
这段代码创建了一个包含登录和注册功能的Java Swing GUI。当用户点击登录按钮时,程序将验证用户输入的用户名和密码是否存在于数据库中。当用户点击注册按钮时,程序将在数据库中插入新的用户信息。
注意,这个示例代码只是一个简单的实现,实际应用中需要更多的安全性和错误处理。