gpt4 book ai didi

java - JTable 作为 MVC 框架的一部分

转载 作者:行者123 更新时间:2023-12-01 04:54:24 28 4
gpt4 key购买 nike

到处做了一些研究后,我在解决某个特定问题时感到羞愧。我对 JTable 不太熟悉,想知道是否可以获得一些建议。

我正在使用模型- View - Controller 概念,但遇到以下问题。

这是 MODEL 类中的一段没有错误的代码:

    public TableModel getTableData() throws SQLException {
try {
String sql = "SELECT date as 'Date',eventName as 'Name', time as 'Start Time' FROM Event";
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
TableModel model = (DbUtils.resultSetToTableModel(rs));
return model;
}
finally {
try {rs.close(); pst.close(); conn.close(); }
catch(SQLException e){}
}

}

这是 VIEW 类的片段:

 public EventView() {
initComponents();
this.model = new EventModel();
tableEvent.setModel(model.getTableData());

}

我的错误在于 VIEW 类的 tableEvent.setModel(model.getTableData()); 部分,其中表示必须捕获或抛出 SQL 异常。据我了解,在接口(interface)(VIEW CLASS)中处理数据库并不是一个好的做法。应由 MODEL 处理。

我这里有两个选择:

  1. 将 throws 子句添加到 EventView() 构造函数本身
  2. try-catch 包围语句。

但我相信这会将数据库导入和概念添加到界面中,我认为这不是一件好事?大家觉得怎么样,重要吗?或者我可以用其他方式初始化我的表吗?

最佳答案

您应该从 getTableData 函数的签名中删除 throws SQLException 子句。SQLException 是在该方法内部处理的,因此不需要抛出它, View 也不需要知道它。

关于java - JTable 作为 MVC 框架的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14414006/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com