java - 从 postgresql 填充 jTable

标签 java database swing postgresql jtable

我正在使用数据库和 GUI 在 NetBeans 8 中执行 java 项目。当我搜索数据库并将找到的值添加到 JTable 时,出现问题:所有值仅添加到 JTable 的第一列,而我需要添加它们分别到相应的列。我尝试了 getColumnCount() 它也给了我 1 意味着我只有一列。如何将数据库值添加到JTable的相应列中?

我已经尝试了建议的所有填充功能 here

我的代码:

jTable1 = new javax.swing.JTable();

       String sql = "SELECT (flight_id, plane_name, dep_city, arival_city, date_month, date_day, eclassnumberofseats, bclassnumberofseats, fclassnumberofseats) FROM flight "
                 + "WHERE (dep_city = '" + SearchFlight.getFromCity() + "' AND " 
                 + "arival_city = '" + SearchFlight.getToCity() + "' AND "
                 + "date_month = '" + SearchFlight.getMonth() + "');";

        PreparedStatement stat = conn.prepareStatement(sql);
        ResultSet rs = stat.executeQuery();
jTable1.setModel(DbUtils.resultSetToTableModel(rs)
    );
jScrollPane1.setViewportView(jTable1);

SearchFlight是一个GUI类,它的方法返回在GUI中获取的字符串。 DbUtils.resultSetToTableModel(rs)是net.proteanit.sql.DbUtils中的一个方法;

因此,预计数据将填充到 9 列,但实际上是将所有数据填充到一列中。

最佳答案

SELECT ( ... )

必须是

SELECT .... 
<小时/>

并且更好地按预期使用PreparedStatement。否则SQL injection仍然是可能的。 try-with-resources 会在所有情况下关闭这些东西。

    String sql = "SELECT flight_id, plane_name, dep_city, arival_city, date_month, "
             + "date_day, eclassnumberofseats, bclassnumberofseats, fclassnumberofseats "
             + "FROM flight "
             + "WHERE dep_city = ? AND " 
             + "arival_city = ? AND "
             + "date_month = ?";

    try (PreparedStatement stat = conn.prepareStatement(sql)) {
        stat.setString(1, SearchFlight.getFromCity());
        stat.setString(2, SearchFlight.getToCity());
        stat.setString(3, SearchFlight.getMonth());
        try (ResultSet rs = stat.executeQuery()) {
             jTable1.setModel(DbUtils.resultSetToTableModel(rs));
        }
    }

关于java - 从 postgresql 填充 jTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33937015/

相关文章:

mysql - 这个 SQL 查询/连接可能吗?

没有企业服务器的 Java 数据持久性?

java - 按字段选择 hibernate

java - 逻辑和算术移位的输出

c# - 在构建和报告 DB i .NET 4.5 和 SQL Server 2012 之间自动切换

php - 为插件单独的 MySQL 表

java - 带有换行符和制表符的 TextLayout

java - JTextArea 中的不同文本颜色

java - 应用内更新重新启动过时的版本而不是新安装的版本

java - 通过 Nashorn 执行 uglifyJs2