将信息从数据库传输到 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的主要内容,如果未能解决你的问题,请参考以下文章