将信息从数据库传输到 JTable

Posted

技术标签:

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

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

-谢谢。

【问题讨论】:

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

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

DefaultTableModel 采用简单数组 Object, String, Integer, Boolean[] in JTablel 或 DefaultTableModel 也

Vector 仍然并将成为 JTable、DefaultTableModel 的构造函数(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 的简单方法。

【讨论】:

以上是关于将信息从数据库传输到 JTable的主要内容,如果未能解决你的问题,请参考以下文章

将arrayList数据加载到JTable中

将数据从txt文件加载到JTable

从JTable读取数据

将编辑过的单元格从 JTable 保存到数据库

将 ResultSet 读入 JTable(通过不同的类)

ResultSet 仅将最后一行返回到 JTable