Java圖形界面作為一種流行的用戶交互方式,其實(shí)現(xiàn)必須要與數(shù)據(jù)存儲(chǔ)相關(guān)聯(lián),這就涉及到MySQL數(shù)據(jù)庫的使用。在本文中,將演示如何使用Java圖形界面與MySQL數(shù)據(jù)庫實(shí)現(xiàn)登錄功能。
首先,我們需要在MySQL數(shù)據(jù)庫中創(chuàng)建一個(gè)名為“user”的表格,其中保存有用戶名與密碼等用戶信息。創(chuàng)建表格的SQL語句如下:
CREATE TABLE user ( id INT(11) NOT NULL AUTO_INCREMENT, username VARCHAR(255) NOT NULL, password VARCHAR(255) NOT NULL, PRIMARY KEY (id) );
接下來,我們需要編寫Java代碼,實(shí)現(xiàn)用戶登錄功能。以下是Java代碼示例:
import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.sql.*; public class LoginFrame extends JFrame implements ActionListener { JLabel userLabel, passLabel; JTextField userField; JPasswordField passField; JButton loginButton; LoginFrame() { userLabel = new JLabel("Username:"); passLabel = new JLabel("Password:"); userField = new JTextField(); passField = new JPasswordField(); loginButton = new JButton("Login"); loginButton.addActionListener(this); setLayout(new GridLayout(3, 2)); add(userLabel); add(userField); add(passLabel); add(passField); add(new JLabel("")); add(loginButton); setBounds(100, 100, 300, 150); setDefaultCloseOperation(EXIT_ON_CLOSE); setVisible(true); } public void actionPerformed(ActionEvent ae) { try { Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/mydb", "root", ""); PreparedStatement statement = con.prepareStatement( "SELECT * FROM user WHERE username=? AND password=?"); statement.setString(1, userField.getText()); statement.setString(2, new String(passField.getPassword())); ResultSet result = statement.executeQuery(); if (result.next()) { JOptionPane.showMessageDialog(this, "Login successful!"); } else { JOptionPane.showMessageDialog(this, "Incorrect username or password."); } statement.close(); con.close(); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { new LoginFrame(); } }
在以上Java代碼中,我們使用JDBC連接到MySQL數(shù)據(jù)庫,并準(zhǔn)備執(zhí)行SQL語句。通過PreparedStatement為SQL語句制定參數(shù),以便可以安全地防止SQL注入攻擊。查詢結(jié)果是一個(gè)ResultSet對(duì)象,我們將使用JOptionPane顯示登錄成功或失敗的消息。最后,記得關(guān)閉數(shù)據(jù)庫連接。
以上是如何使用Java圖形界面與MySQL數(shù)據(jù)庫實(shí)現(xiàn)登錄功能的完整過程。如果您有更多類似的需求,可以根據(jù)上述示例進(jìn)行修改和擴(kuò)展。