WalzoneInterview Prep
📞 Interviewing soon? Practice with a realistic AI mock phone interview — it calls you, then scores you. First 15 min FREE →

Java JDBC · Intermediate · question 35 of 100

How do you handle transactions using the JDBC Savepoint feature?

📕 Buy this interview preparation book: 100 Java JDBC questions & answers — PDF + EPUB for $5

In JDBC, transactions are used to group multiple database operations into a single unit of work. Sometimes, it may be necessary to create savepoints within a transaction, which can be used to roll back to a particular point in the transaction if needed. Here’s how to handle transactions with Savepoints in JDBC.

1. Establish the Connection: First, establish a connection to the database using the JDBC driver.

    Class.forName("com.mysql.jdbc.Driver");
    Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/mydatabase", "root", "password");

2. Disable Auto-Commit: By default, JDBC turns on auto-commit mode, which means that each SQL statement is treated as a separate transaction. To ensure that multiple SQL statements are executed as a single transaction, you need to turn off auto-commit mode.

    connection.setAutoCommit(false);

3. Create a Savepoint: To create a savepoint, use the connection object’s setSavepoint() method.

    Savepoint savepoint = connection.setSavepoint("savepoint1");

4. Execute SQL Statements: Write and execute SQL statements as you normally would for the transaction.

    // sample SQL statement 
    String sql = "INSERT INTO customers (first_name, last_name, email) VALUES (?, ?, ?)";
    
    // set the values for the placeholders
    String firstName = "John";
    String lastName = "Doe";
    String email = "johndoe@email.com";
    
    // create a PreparedStatement object
    PreparedStatement preparedStatement = connection.prepareStatement(sql);
    
    // set the values for the placeholders
    preparedStatement.setString(1, firstName);
    preparedStatement.setString(2, lastName);
    preparedStatement.setString(3, email);
    
    // execute the SQL statement
    preparedStatement.executeUpdate();

5. Rollback to a Savepoint: If a problem occurs during the transaction, you can use the rollback() method to undo all the changes made since the beginning of the transaction. Alternatively, you can roll back to a savepoint.

    // If you need to roll back to the savepoint 
    connection.rollback(savepoint);

6. Commit or Rollback the Transaction: Once you have executed all the SQL statements for the transaction, you need to commit the changes to the database using the commit() method.

    connection.commit();

7. Close the Connection: Finally, close the connection to the database.

    connection.close();

In summary, Savepoints can be used to create intermediate points in a transaction where changes can be rolled back to a certain point. By using the JDBC Savepoint feature, you can manage your transactions more efficiently and ensure data integrity in your database.

Reading is step one. Saying it out loud is the interview. Our AI interviewer calls your phone and runs a realistic Java JDBC interview — then scores it.
📞 Practice Java JDBC — free 15 min
📕 Buy this interview preparation book: 100 Java JDBC questions & answers — PDF + EPUB for $5

All 100 Java JDBC questions · All topics