【问题标题】:Transferring information from Database to a JTable将信息从数据库传输到 JTable
【发布时间】:2013-09-21 12:45:04
【问题描述】:

我正在尝试想出一种将数据从数据库传输到 JTable 的方法, 起初我想用一个 ResultSet 到一个 Vector 到一个 DefaultTableModel 来做,因为 DefaultTableModel 只需要一个 Vector, 但后来当我读到它似乎向量已经过时和不推荐使用。所以我的问题是,在这种情况下使用 Vector 会是不好的编程吗?如果不推荐使用向量,那么为什么 DefaultTableModel 只需要一个向量?

-谢谢。

【问题讨论】:

  • 谁说向量已被弃用?从 Java 7 开始,它不是。无论如何,这里的坏主意是绑定 GUI 和持久层(也就是说,直接在 ResultSet 中传递数据,而不是在不可知的对象 -v.g. bean- 中传递数据)。
  • @SJuan76 不是火焰战,我的观点 bean 引起了另一个问题,对我来说重要的是性能

标签: java swing jdbc jtable defaulttablemodel


【解决方案1】:

如果不推荐使用向量,那么为什么 DefaultTableModel 只需要 一个向量?

  • DefaultTableModel 采用简单数组 Object, String, Integer, Boolean[] in JTablelDefaultTableModel

  • Vector 仍然并将成为 JTableDefaultTableModel 的构造函数(Java8 的 pre_realeses 没有任何变化)

  • DefaultTableModel 为 JTable 所需的所有方法提供了简单的实现,而且一切都只是关于 DefaultTableModels API 中实现的限制或增强方法

  • 您可以使用 util.List 作为 JTable 的底层数组,是 Vector 的更好替代品,但我建议使用 AbstractTableModel,

  • 在 AbstractTableModel 中,您也可以使用 Object、String、Integer、Boolean[] 或 Vector> 作为底层数组

【讨论】:

  • JDBC_to_JTable有优化类,默认基于AbstractTableModel,(Vector或util.List)搜索ResultSetTableModel或TableFromDatabase获取更多信息,避免重复造轮子
【解决方案2】:

我读到向量已经过时,应该使用集合,

向量是集合框架的一部分。它实现了与 ArrayList 相同的 List 接口。不同之处在于 Vector 是自动同步的,而 ArrayList 不是。在 gui 中使用 JTable 时,这不会有什么不同(如果有的话)。

如果您想要一个使用 ArrayList 的模型,那么您可以查看List Table Model。另外,请参阅Table From Database,了解使用ResultSet 创建ListTableModel 的简单方法。

【讨论】:

    猜你喜欢
    • 2022-12-12
    • 1970-01-01
    • 2013-05-20
    • 2019-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多