连接数据库 登录注册界面java
时间: 2023-09-14 15:06:28 浏览: 79
连接数据库和登录注册界面都需要使用Java的JDBC库。以下是一个简单的示例代码,可以用来连接MySQL数据库并实现登录和注册功能。
首先,需要创建一个MySQL数据库,并创建一个名为“users”的表,其中包含“username”和“password”两个字段。
接下来,创建一个名为“DBConnection”的Java类,用于连接MySQL数据库:
```java
import java.sql.*;
public class DBConnection {
private static final String URL = "jdbc:mysql://localhost:3306/mydb"; // 数据库连接URL
private static final String USER = "root"; // 数据库用户名
private static final String PASSWORD = "password"; // 数据库密码
private static Connection conn = null;
public static Connection getConnection() {
try {
Class.forName("com.mysql.jdbc.Driver"); // 加载MySQL驱动
conn = DriverManager.getConnection(URL, USER, PASSWORD);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
}
```
接下来,创建一个名为“LoginFrame”的Java类,用于实现登录和注册功能的用户界面:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;
public class LoginFrame extends JFrame implements ActionListener {
private JPanel panel;
private JTextField usernameField;
private JPasswordField passwordField;
private JLabel messageLabel;
public LoginFrame() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("登录/注册");
panel = new JPanel(new GridLayout(3, 2));
JLabel usernameLabel = new JLabel("用户名:");
usernameField = new JTextField();
panel.add(usernameLabel);
panel.add(usernameField);
JLabel passwordLabel = new JLabel("密码:");
passwordField = new JPasswordField();
panel.add(passwordLabel);
panel.add(passwordField);
JButton loginButton = new JButton("登录");
loginButton.addActionListener(this);
panel.add(loginButton);
JButton registerButton = new JButton("注册");
registerButton.addActionListener(this);
panel.add(registerButton);
messageLabel = new JLabel("");
panel.add(messageLabel);
setContentPane(panel);
setSize(300, 150);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("登录")) {
String username = usernameField.getText();
String password = new String(passwordField.getPassword());
if (login(username, password)) {
messageLabel.setText("登录成功");
} else {
messageLabel.setText("登录失败,请检查用户名和密码");
}
} else if (e.getActionCommand().equals("注册")) {
String username = usernameField.getText();
String password = new String(passwordField.getPassword());
if (register(username, password)) {
messageLabel.setText("注册成功");
} else {
messageLabel.setText("注册失败,请检查用户名是否已存在");
}
}
}
private boolean login(String username, String password) {
try {
Connection conn = DBConnection.getConnection();
PreparedStatement ps = conn.prepareStatement("SELECT * FROM users WHERE username=? AND password=?");
ps.setString(1, username);
ps.setString(2, password);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
return true;
}
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
private boolean register(String username, String password) {
try {
Connection conn = DBConnection.getConnection();
PreparedStatement ps = conn.prepareStatement("SELECT * FROM users WHERE username=?");
ps.setString(1, username);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
return false;
}
ps = conn.prepareStatement("INSERT INTO users (username, password) VALUES (?, ?)");
ps.setString(1, username);
ps.setString(2, password);
ps.executeUpdate();
return true;
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
public static void main(String[] args) {
new LoginFrame();
}
}
```
这个示例代码使用JDBC库连接MySQL数据库,并实现了登录和注册功能的用户界面。当用户单击“登录”按钮时,程序将检查输入的用户名和密码是否正确,并显示相应的消息。当用户单击“注册”按钮时,程序将检查输入的用户名是否已存在,并将新用户添加到数据库中。
阅读全文