仿照QQ登录页面,使用Java建立一个数据库QQDB,数据库添加一个表格Users(两个字段:用户名,密码),并为表格添加用户数据。界面登录时,需要从数据库中验证用户名及密码,若登录成功,打开一个界面(任意一个空白界面);否则在“登录”按钮的下方,显示“密码或者用户名错误”
时间: 2023-06-26 22:07:39 浏览: 256
仿照QQ音乐播放器 wpf + 无数据库
好的,我可以为您提供一些代码来实现您的需求。但是需要注意的是,为了安全起见,存储密码时应该使用加密算法,例如MD5,SHA等等。
首先,我们需要创建一个Java项目,并且将项目所需的JDBC驱动添加到项目中。在此之前,您需要安装并配置MySQL数据库,并创建名为QQDB的数据库。
接下来,我们需要创建一个名为Users的表格,并添加一些用户数据。可以使用如下的SQL语句:
```
CREATE TABLE Users (
username VARCHAR(50) NOT NULL,
password VARCHAR(50) NOT NULL,
PRIMARY KEY (username)
);
INSERT INTO Users (username, password) VALUES ('user1', 'pass1');
INSERT INTO Users (username, password) VALUES ('user2', 'pass2');
INSERT INTO Users (username, password) VALUES ('user3', 'pass3');
```
接下来,我们需要创建一个登录界面。可以使用Swing库来创建一个简单的界面。以下是一个示例代码:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
public class LoginFrame extends JFrame implements ActionListener {
private JLabel userLabel, passLabel;
private JTextField userText;
private JPasswordField passText;
private JButton loginButton;
public LoginFrame() {
setTitle("QQ登录");
setSize(300, 150);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
userLabel = new JLabel("用户名:");
passLabel = new JLabel("密码:");
userText = new JTextField(20);
passText = new JPasswordField(20);
loginButton = new JButton("登录");
loginButton.addActionListener(this);
JPanel panel = new JPanel(new GridLayout(3, 2));
panel.add(userLabel);
panel.add(userText);
panel.add(passLabel);
panel.add(passText);
panel.add(new JLabel(""));
panel.add(loginButton);
add(panel, BorderLayout.CENTER);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == loginButton) {
String username = userText.getText();
String password = new String(passText.getPassword());
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/QQDB", "root", "");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM Users WHERE username='" + username + "' AND password='" + password + "'");
if (rs.next()) {
JOptionPane.showMessageDialog(this, "登录成功");
// 打开一个新的界面
} else {
JOptionPane.showMessageDialog(this, "用户名或密码错误");
}
rs.close();
stmt.close();
con.close();
} catch (Exception ex) {
JOptionPane.showMessageDialog(this, "连接数据库失败");
}
}
}
public static void main(String[] args) {
LoginFrame frame = new LoginFrame();
frame.setVisible(true);
}
}
```
在上面的代码中,我们定义了一个LoginFrame类,它继承自JFrame类,并实现了ActionListener接口。在LoginFrame类的构造函数中,我们创建了一个包含两个文本框、一个按钮和三个标签的面板,并将其添加到LoginFrame窗口的中央区域。在登录按钮的ActionListener中,我们获取用户名和密码,并使用JDBC API连接到MySQL数据库,并执行一个查询语句来验证用户的凭据。如果查询返回结果,则显示一个消息框,提示登录成功;否则,显示一个消息框,提示用户名或密码错误。
请注意,上面的代码中涉及到了JDBC API的使用,我们需要确保已经添加了MySQL JDBC驱动。
希望这个代码可以帮助到您!
阅读全文