在Java中使用Swing連接數據庫,需要借助JDBC(Java Database Connectivity)技術。以下是一個簡單的例子,演示了如何使用Swing和JDBC連接MySQL數據庫:
1. 導入必要的包:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
```
2. 創建Swing界面:
```java
public class DatabaseConnection extends JFrame {
private JTextField tfName;
private JTextArea taResult;
private JButton btnConnect;
public DatabaseConnection() {
// 設置窗口標題
super("Database Connection");
// 創建組件
tfName = new JTextField(20);
taResult = new JTextArea();
btnConnect = new JButton("Connect");
// 添加事件監聽器
btnConnect.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
connectToDatabase();
}
});
// 創建面板并添加組件
JPanel panel = new JPanel();
panel.add(new JLabel("Name:"));
panel.add(tfName);
panel.add(btnConnect);
// 設置文本區域屬性
taResult.setEditable(false);
taResult.setLineWrap(true);
// 添加組件到窗口
Container container = getContentPane();
container.setLayout(new BorderLayout());
container.add(panel, BorderLayout.NORTH);
container.add(new JScrollPane(taResult), BorderLayout.CENTER);
// 設置窗口大小和可見性
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
private void connectToDatabase() {
// 獲取用戶名
String name = tfName.getText();
// 連接數據庫
try {
// 加載數據庫驅動
Class.forName("com.mysql.jdbc.Driver");
// 創建連接
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "username", "password");
// 執行查詢
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM users WHERE name = '" + name + "'");
// 處理結果集
while (rs.next()) {
int id = rs.getInt("id");
String resultName = rs.getString("name");
String email = rs.getString("email");
taResult.append("ID: " + id + ", Name: " + resultName + ", Email: " + email + "\n");
}
// 關閉連接
rs.close();
stmt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new DatabaseConnection();
}
}
```
在上述代碼中,通過JDBC加載MySQL數據庫驅動,使用`DriverManager.getConnection()`方法連接數據庫,然后使用查詢語句執行查詢,并處理結果集。最后關閉連接。
注意:上述代碼中的數據庫連接字符串(`jdbc:mysql://localhost:3306/mydatabase`)需要根據實際情況進行修改,以及數據庫用戶名和密碼(`"username", "password"`)。