Java Swing 是 Java 的一个图形用户界面(GUI)工具包,它允许开发者创建跨平台的桌面应用程序。数据库则是一个用于存储和管理数据的系统,常见的数据库包括 MySQL、PostgreSQL、Oracle 等。
在 Java Swing 中连接数据库,通常需要使用 JDBC(Java Database Connectivity)技术。JDBC 是 Java 提供的一个用于执行 SQL 语句的 API,它允许 Java 程序与各种关系型数据库进行交互。
以下是一个简单的 Java Swing 连接 MySQL 数据库的示例代码:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class DBConnectionDemo extends JFrame {
private JTextField textField;
private JTextArea textArea;
public DBConnectionDemo() {
setTitle("数据库连接示例");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
textField = new JTextField();
add(textField, BorderLayout.NORTH);
textArea = new JTextArea();
JScrollPane scrollPane = new JScrollPane(textArea);
add(scrollPane, BorderLayout.CENTER);
JButton button = new JButton("查询");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
queryDatabase();
}
});
add(button, BorderLayout.SOUTH);
}
private void queryDatabase() {
String url = "jdbc:mysql://localhost:3306/mydatabase";
String user = "root";
String password = "password";
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
// 加载 JDBC 驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 建立连接
conn = DriverManager.getConnection(url, user, password);
// 创建 Statement 对象
stmt = conn.createStatement();
// 执行查询
String sql = "SELECT * FROM mytable WHERE name = '" + textField.getText() + "'";
rs = stmt.executeQuery(sql);
// 处理结果集
while (rs.next()) {
String name = rs.getString("name");
int age = rs.getInt("age");
textArea.append("姓名:" + name + ",年龄:" + age + "\n");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭资源
try {
if (rs != null) rs.close();
if (stmt != null) stmt.close();
if (conn != null) conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new DBConnectionDemo().setVisible(true);
}
});
}
}
领取专属 10元无门槛券
手把手带您无忧上云