javaswing从数据库中读取数据动态显示到jtable上
时间: 2024-03-18 22:41:14 浏览: 17
可以按照以下步骤实现:
1. 首先,你需要连接到数据库并执行查询语句,获取数据。
2. 创建一个JTable对象,并使用ResultSetMetaData获取查询结果集的列数和列名。
3. 使用DefaultTableModel作为TableModel,并将数据和列名添加到TableModel中。
4. 将TableModel设置为JTable的model属性即可。
以下是一个简单的示例代码:
```java
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.sql.*;
public class Main {
public static void main(String[] args) {
try {
//连接到数据库
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
Statement stmt = conn.createStatement();
String sql = "SELECT * FROM students";
ResultSet rs = stmt.executeQuery(sql);
//获取结果集列数和列名
ResultSetMetaData metaData = rs.getMetaData();
int columnCount = metaData.getColumnCount();
String[] columnNames = new String[columnCount];
for (int i = 1; i <= columnCount; i++) {
columnNames[i - 1] = metaData.getColumnName(i);
}
//将数据添加到TableModel中
DefaultTableModel model = new DefaultTableModel();
model.setColumnIdentifiers(columnNames);
while (rs.next()) {
String[] rowData = new String[columnCount];
for (int i = 1; i <= columnCount; i++) {
rowData[i - 1] = rs.getString(i);
}
model.addRow(rowData);
}
//创建JTable并设置TableModel
JTable table = new JTable(model);
//将JTable添加到JFrame中显示
JFrame frame = new JFrame();
frame.add(new JScrollPane(table));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
//关闭连接
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
```
你需要根据你自己的数据库表结构修改代码中的查询语句和列名。