我目前有一个数据库类,其中包含我从 SQL 数据库检索数据的所有方法。一个方法看起来像:
@Override
public void setGlobalSetting(Setting setting) {
if(setting.getId() == 0) {
try {
PreparedStatement ps = this.conn.prepareStatement("INSERT INTO BotSettings(guildId, settingKey, settingValue) VALUES(?, ?, ?)");
ps.setLong(1, -1);
ps.setString(2, setting.getKey());
ps.setString(3, setting.getValue());
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
} else {
try {
PreparedStatement ps = this.conn.prepareStatement("UPDATE BotSettings SET settingValue = ? WHERE guildId = ? AND settingKey = ?");
ps.setString(1, setting.getValue());
ps.setLong(2, -1);
ps.setString(3, setting.getKey());
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
问题是当 SQLException 发生时我无法告诉我的应用程序,因此应用程序可能会响应用户应用程序未能保存数据。我怎样才能实现一个可以告诉应用程序失败的方法。我想到了用Consumer来告诉成功和失败,但是还有其他方法吗?
慕尼黑的夜晚无繁华
相关分类