Вот пример транзакции Java:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class TransactionExample {
public static void main(String[] args) {
// Database connection parameters
String url = "jdbc:mysql://localhost:3306/mydatabase";
String username = "myuser";
String password = "mypassword";
// SQL statements
String debitSQL = "UPDATE accounts SET balance = balance - 100 WHERE account_number = 'A001'";
String creditSQL = "UPDATE accounts SET balance = balance + 100 WHERE account_number = 'A002'";
Connection connection = null;
Statement statement = null;
try {
// Create connection
connection = DriverManager.getConnection(url, username, password);
connection.setAutoCommit(false); // Disable auto-commit
// Create statement
statement = connection.createStatement();
// Execute debit SQL
statement.executeUpdate(debitSQL);
// Execute credit SQL
statement.executeUpdate(creditSQL);
// Commit the transaction
connection.commit();
System.out.println("Transaction committed successfully.");
} catch (SQLException e) {
// Rollback the transaction in case of any exception
try {
if (connection != null) {
connection.rollback();
System.out.println("Transaction rolled back successfully.");
}
} catch (SQLException ex) {
ex.printStackTrace();
}
e.printStackTrace();
} finally {
// Close statement and connection
try {
if (statement != null) {
statement.close();
}
if (connection != null) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
Этот пример демонстрирует простую транзакцию на Java с использованием JDBC (подключение к базе данных Java). Он подключается к базе данных MySQL, дебетует 100 долларов США со счета A001 и зачисляет 100 долларов США на счет A002. Транзакция заключена в блок try-catch для обработки любых исключений. Если возникает исключение, транзакция откатывается; в противном случае оно фиксируется.