Sobes.tech
Junior — Middle

Hogyan történik a tranzakció befejezésének és szükség esetén annak visszavonásának ellenőrzése?

sobes.tech MI

Válasz az MI-től

Java-ban a tranzakciók befejezésének ellenőrzése és visszavonása általában a tranzakciókezelő API-k segítségével történik, például JDBC vagy Spring keretrendszerek révén.

Fő megközelítés:

  • Tranzakció indítása (pl. connection.setAutoCommit(false) JDBC-ben).
  • A szükséges műveletek végrehajtása az adatbázison.
  • Ha minden művelet sikeres, akkor a commit() hívásával megerősítjük a változtatásokat.
  • Hibák vagy kivételek esetén rollback() hívásával visszavonjuk az összes változtatást, ami a tranzakció keretében történt.

JDBC példával:

Connection connection = null;
try {
    connection = dataSource.getConnection();
    connection.setAutoCommit(false); // tranzakció kezdete

    // Adatbázis műveletek végrehajtása

    connection.commit(); // tranzakció megerősítése
} catch (SQLException e) {
    if (connection != null) {
        try {
            connection.rollback(); // rollback hiba esetén
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }
    e.printStackTrace();
} finally {
    if (connection != null) {
        try {
            connection.setAutoCommit(true);
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

A Spring keretrendszerben az @Transactional annotáció automatikusan kezeli a tranzakciókat, és a siker vagy sikertelenség függvényében hívja a commit vagy rollback műveleteket.