【发布时间】:2011-12-19 09:56:34
【问题描述】:
我在 wicket 做一个项目 如何解决问题。 我遇到了这样一个消息: WicketMessage:无法使用构造函数 public itucs.blg361.g03.HomePage() 实例化页面
根本原因:
java.lang.UnsupportedOperationException: [SQLITE_BUSY] 数据库文件被锁定(数据库被锁定) 在 itucs.blg361.g03.CategoryEvents.CategoryEventCollection.getCategoryEvents(CategoryEventCollection.java:41)
public List<CategoryEvent> getCategoryEvents() {
List<CategoryEvent> categoryEvents = new
LinkedList<CategoryEvent>();
try {
String query = "SELECT id, name, group_id"
+ " FROM event_category";
Statement statement = this.db.createStatement();
ResultSet result = statement.executeQuery(query);
while (result.next()) {
int id = result.getInt("id");
String name = result.getString("name");
int group_id = result.getInt("group_id");
categoryEvents.add(new CategoryEvent(id, name, group_id));
}
} catch (SQLException ex) {
throw new UnsupportedOperationException(ex.getMessage());
}
return categoryEvents;
}
在 itucs.blg361.g03.HomePage.(HomePage.java:71)
categories = categoryCollection.getCategoryEvents();
在 java.lang.reflect.Constructor.newInstance(Constructor.java:525)
【问题讨论】:
-
好吧,异常说明了一切:数据库已锁定。这与检票口无关,但完全与您的数据库有关。另外,我建议使用适当的例外。 UnsupportedOperationException() 在这里出现语义错误。
-
我是这样使用的:catch(Exception e) { e.printStackTrace();而不是这个:catch (SQLException ex) { throw new UnsupportedOperationException(ex.getMessage());现在看来没问题。还有其他想法吗?