try(Connection con = L2DatabaseFactory.getInstance().getConnection())
{
PreparedStatement statement = con.prepareStatement("UPDATE characters SET online=?, lastAccess=? WHERE obj_id=?");
statement.setInt(1, isOnline());
statement.setLong(2, System.currentTimeMillis());
statement.setInt(3, getObjectId());
statement.execute();
statement.close();
}
catch (final Exception e)
{
if (Config.ENABLE_ALL_EXCEPTIONS)
e.printStackTrace();
_log.warn("could not set char online status:" + e);
}
пример 2
Connection con = null;
PreparedStatement statement = null;
try
{
con = L2DatabaseFactory.getInstance().getConnection();
statement = con.prepareStatement("UPDATE characters SET LastHWID=? WHERE obj_id=?");
statement.setString(1, HWID);
statement.setInt(2, getObjectId());
statement.execute();
}
catch(final Exception e)
{
_log.warning("could not store characters HWID:" + e);
}
finally
{
DatabaseUtils.closeDatabaseCS(con, statement);
}
Вопрос такой, в первом try - catch только но в трае присваивание. А во втором try - catch - finally. Так вот... В первом случае конект закроется автоматически когда попытка будет успешной? или надо всё равно finally писать? Со вторым понятно, finally выполнится когда попытка будет успешна.