java注册和登录界面代码加连接数据库
时间: 2023-09-12 21:05:19 浏览: 37
以下是一个简单的Java注册和登录界面代码,包含连接MySQL数据库的实现:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
public class RegisterLogin extends JFrame implements ActionListener {
private JTabbedPane tabbedPane;
private JPanel registerPanel, loginPanel;
private JLabel label1, label2, label3, label4, label5;
private JTextField usernameField, emailField;
private JPasswordField passwordField1, passwordField2;
private JButton registerButton, loginButton;
private Connection conn;
public RegisterLogin() {
super("注册和登录");
label1 = new JLabel("用户名:");
label2 = new JLabel("密码:");
label3 = new JLabel("确认密码:");
label4 = new JLabel("邮箱:");
label5 = new JLabel("");
usernameField = new JTextField(10);
passwordField1 = new JPasswordField(10);
passwordField2 = new JPasswordField(10);
emailField = new JTextField(10);
registerButton = new JButton("注册");
loginButton = new JButton("登录");
registerPanel = new JPanel(new GridLayout(5,2));
registerPanel.add(label1);
registerPanel.add(usernameField);
registerPanel.add(label2);
registerPanel.add(passwordField1);
registerPanel.add(label3);
registerPanel.add(passwordField2);
registerPanel.add(label4);
registerPanel.add(emailField);
registerPanel.add(label5);
registerPanel.add(registerButton);
loginPanel = new JPanel(new GridLayout(3,2));
loginPanel.add(label1);
loginPanel.add(usernameField);
loginPanel.add(label2);
loginPanel.add(passwordField1);
loginPanel.add(label5);
loginPanel.add(loginButton);
tabbedPane = new JTabbedPane();
tabbedPane.addTab("注册", registerPanel);
tabbedPane.addTab("登录", loginPanel);
add(tabbedPane);
setSize(300, 200);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//连接数据库
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/test";
String user = "root";
String password = "root";
conn = DriverManager.getConnection(url, user, password);
} catch (SQLException | ClassNotFoundException e) {
e.printStackTrace();
}
registerButton.addActionListener(this);
loginButton.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent event) {
if (event.getSource() == registerButton) {
String userName = usernameField.getText();
String password1 = new String(passwordField1.getPassword());
String password2 = new String(passwordField2.getPassword());
String email = emailField.getText();
if (!password1.equals(password2)) {
JOptionPane.showMessageDialog(null, "两次输入的密码不一致");
return;
}
try {
Statement stmt = conn.createStatement();
String sql = "INSERT INTO user(username, password, email) VALUES ('" + userName + "', '" + password1 + "', '" + email + "')";
int result = stmt.executeUpdate(sql);
if (result > 0) {
JOptionPane.showMessageDialog(null, "注册成功");
} else {
JOptionPane.showMessageDialog(null, "注册失败");
}
} catch (SQLException e) {
e.printStackTrace();
}
} else if (event.getSource() == loginButton) {
String userName = usernameField.getText();
String password = new String(passwordField1.getPassword());
try {
Statement stmt = conn.createStatement();
String sql = "SELECT * FROM user WHERE username='" + userName + "' AND password='" + password + "'";
ResultSet rs = stmt.executeQuery(sql);
if (rs.next()) {
JOptionPane.showMessageDialog(null, "登录成功");
} else {
JOptionPane.showMessageDialog(null, "用户名或密码错误");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
new RegisterLogin();
}
}
```
上述代码中,我们使用了JDBC连接MySQL数据库,实现了用户注册和登录功能。需要注意的是,在注册时需要判断两次输入的密码是否一致,若不一致则不允许注册。在登录时,从数据库中查询是否存在相应的用户。若存在,则弹出“登录成功”的消息框,否则弹出“用户名或密码错误”的消息框。
同样需要注意的是,在使用JDBC连接MySQL数据库时,需要先下载MySQL的JDBC驱动,然后将其添加到项目的classpath中。