Java Swing 连接数据库
1. 介绍
在Java的GUI开发中,Swing是一个非常常用的工具包。它提供了一组丰富的组件,用于创建图形用户界面。而连接数据库则是大多数应用程序中常见的功能之一。本文将介绍如何使用Java Swing连接数据库,并提供代码示例。
2. 连接数据库
在Java中,可以使用JDBC(Java Database Connectivity)来连接和操作数据库。JDBC提供了一组API,用于执行SQL语句,从而实现与数据库的交互。在连接数据库之前,需要确保已经安装了数据库驱动程序。常见的数据库驱动程序有MySQL、Oracle、PostgreSQL等。
2.1 导入数据库驱动
首先,我们需要通过在项目中导入数据库驱动程序的jar文件来引入它。假设我们使用的是MySQL数据库,那么可以在Maven配置文件中添加以下依赖项:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
2.2 创建数据库连接
在使用JDBC连接数据库之前,需要先创建一个数据库连接。可以通过以下代码示例来创建连接:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DatabaseConnection {
private static final String URL = "jdbc:mysql://localhost:3306/mydatabase";
private static final String USERNAME = "username";
private static final String PASSWORD = "password";
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(URL, USERNAME, PASSWORD);
}
}
上述代码中,我们使用了DriverManager
类的getConnection
方法来创建数据库连接。需要传递数据库的URL、用户名和密码作为参数。
2.3 执行SQL语句
成功创建数据库连接后,我们可以使用这个连接来执行SQL语句。以下是一个简单的示例,展示如何执行一个SELECT语句并获取结果集:
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DatabaseQuery {
public static void main(String[] args) {
try {
Connection connection = DatabaseConnection.getConnection();
Statement statement = connection.createStatement();
String sql = "SELECT * FROM students";
ResultSet resultSet = statement.executeQuery(sql);
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
int age = resultSet.getInt("age");
System.out.println("ID: " + id + ", Name: " + name + ", Age: " + age);
}
resultSet.close();
statement.close();
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
上述代码中,我们使用了Statement
类的executeQuery
方法来执行SELECT语句,并通过ResultSet
类获取结果集。然后,可以使用ResultSet
对象的getXXX
方法获取结果集中的具体值。
3. Java Swing 示例
3.1 创建Swing窗口
首先,我们需要创建一个Swing窗口,用于展示数据库查询结果。以下是一个简单的示例:
import javax.swing.*;
import java.awt.*;
public class MainWindow extends JFrame {
private JTable table;
public MainWindow() {
setTitle("Database Query Result");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setPreferredSize(new Dimension(400, 300));
setLayout(new BorderLayout());
table = new JTable();
JScrollPane scrollPane = new JScrollPane(table);
add(scrollPane, BorderLayout.CENTER);
pack();
setLocationRelativeTo(null);
setVisible(true);
}
public void setTableModel(DefaultTableModel model) {
table.setModel(model);
}
}
3.2 查询数据库并显示结果
接下来,我们需要在Swing窗口中查询数据库并显示结果。以下是一个示例代码:
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.sql.*;
public class DatabaseQuerySwing {
public static void main(String[] args) {
EventQueue.invokeLater(() -> {
try {
Connection connection = DatabaseConnection.getConnection();
Statement statement = connection.createStatement();
String sql = "SELECT * FROM students";
ResultSet resultSet = statement.executeQuery(sql);
DefaultTableModel model = new DefaultTableModel();
model.addColumn("ID");
model.addColumn("Name");
model.addColumn("Age");
while (resultSet.next()) {
Object[] row = new Object[3];
row[0] = resultSet.getInt("id");
row[1] = resultSet.getString("name");
row[2] = resultSet.getInt("age");