在这里和那里做了一些研究,我在解决一个特定问题时感到丢脸。我不太熟悉,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());
}
我的错误在于tableEvent.setModel(model.getTableData());
VIEW 类的部分,它说必须捕获或抛出 SQL 异常。据我了解,在接口(视图类)中处理数据库不是一个好习惯。应由 MODEL 处理。
我在这里有两个选择:
- 将 throws 子句添加到
EventView()
构造函数本身 - 用 包围声明
try-catch
。
但我相信这会将数据库导入和概念添加到接口中,我认为这不是一个好主意吗?大家怎么看,有关系吗?或者我可以用其他方式初始化我的表吗?