Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JTable作为MVC框架的一部分_Java_Sql_Swing_User Interface_Jtable - Fatal编程技术网

Java JTable作为MVC框架的一部分

Java JTable作为MVC框架的一部分,java,sql,swing,user-interface,jtable,Java,Sql,Swing,User Interface,Jtable,在这里那里做了一些研究之后,我在解决一个特定的问题时感到丢脸。我不太熟悉JTable,不知道我是否能得到一些建议 我正在处理一个模型-视图-控制器概念,我有以下问题 下面是模型类中的一段代码,它是无错误的: public TableModel getTableData() throws SQLException { try { String sql = "SELECT date as 'Date',eventName as 'Name', time as 'Sta

在这里那里做了一些研究之后,我在解决一个特定的问题时感到丢脸。我不太熟悉
JTable
,不知道我是否能得到一些建议

我正在处理一个模型-视图-控制器概念,我有以下问题

下面是模型类中的一段代码,它是无错误的:

    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());

}
我的错误在于
tableEvent.setModel(model.getTableData())部分,其中指出必须捕获或抛出SQL异常。据我所知,在接口(视图类)中处理数据库不是一个好的做法。应该由模型来处理

我有两个选择:

  • 将throws子句添加到
    EventView()
    构造函数本身
  • try catch
    环绕语句
    但我相信这会将数据库导入和概念添加到接口中,我认为这不是一个好方法?你们觉得这有什么关系吗?或者,我可以以其他方式初始化我的表吗

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