【发布时间】:2017-10-11 03:49:20
【问题描述】:
经过数小时的尝试,我已经接近一个项目的最后期限,但仍然没有为我相当简单的问题找到任何解决方案。我需要用 SQL Query 中的数据填充表格视图,但即使我复制粘贴在线示例,我也无法让它工作......我需要与以下代码相同的结果
public DefaultTableModel buildTableModel() {
ResultSetMetaData metaData;
try (Connection conn = DriverManager.getConnection(MapperConfig.JDBC_URL)) {
PreparedStatement queryOpgeslagenGames = conn.prepareStatement("");
ResultSet rs = queryOpgeslagenGames.executeQuery("SELECT spellen.spelID, spellen.spelNaam AS 'Naam van Spel', group_concat( naam separator ', ') AS 'Deelnemende spelers' FROM spellen RIGHT JOIN spelers ON spellen.spelID = spelers.spelID GROUP BY spellen.spelID");
metaData = rs.getMetaData();
// names of columns
Vector<String> columnNames = new Vector<String>();
int columnCount = metaData.getColumnCount();
for (int column = 1; column <= columnCount; column++) {
columnNames.add(metaData.getColumnName(column));
}
// data of the table
Vector<Vector<Object>> data = new Vector<Vector<Object>>();
while (rs.next()) {
Vector<Object> vector = new Vector<Object>();
for (int columnIndex = 1; columnIndex <= columnCount; columnIndex++) {
vector.add(rs.getObject(columnIndex));
}
data.add(vector);
}
return new DefaultTableModel(data, columnNames);
} catch (SQLException ex) {
for (Throwable t : ex) {
t.printStackTrace();
}
}
return new DefaultTableModel();
}
但是因为我需要在 JavaFX 中使用它,所以我不能使用 Jtable 并且需要使用表格视图。有人可以为我转换代码吗?或者告诉我如何使用 DefaultTableModel 制作表格视图?
表格总是有 3 列,第一个是游戏 ID,第二个是游戏保存文件名,第三个是游戏中人物的名字集合。
【问题讨论】:
-
从 SQL 语句看来,您似乎知道要拥有多少列,以及这些列中的数据代表什么。那是对的吗?如果是这样,您能否在问题中明确包含该信息? (顺便说一句,我不认为在这个论坛上可以接受为答案付费。这当然不符合网站的精神。)
-
@James_D 补充说:表格总是有 3 个列,第一个是游戏 ID,第二个是游戏保存文件名,第三个是游戏中人物的名字集合
-
您是否转发过这个post 假设您可以从这篇文章中找到更好的解决方案。