JTable作为MVC框架的一部分



在到处做了一些研究之后,我在解决一个特定的问题上感到羞愧。我对JTable不太熟悉,不知道您能给我一些建议吗?

我正在使用模型-视图-控制器概念,我有以下问题。

下面是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异常。据我所知,在界面(VIEW CLASS)中处理数据库不是一个好的做法。应该由MODEL处理。

这里有两个选项:

  1. EventView()构造函数添加抛出子句
  2. try-catch包围语句。

但我相信这会增加数据库导入和概念的接口,我不认为这是一个好?你们怎么看,这重要吗?或者,我可以用其他方式初始化我的表吗?

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

相关内容

  • 没有找到相关文章

最新更新