jdbc封装数据库事物的代码
时间: 2023-05-28 20:04:00 浏览: 54
以下是使用Java JDBC封装数据库事务的代码示例:
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class TransactionExample {
private static final String DB_URL = "jdbc:mysql://localhost:3306/mydatabase";
private static final String DB_USER = "root";
private static final String DB_PASSWORD = "password";
public static void main(String[] args) {
Connection connection = null;
Statement statement = null;
try {
// Establish database connection
connection = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
// Turn off auto-commit mode
connection.setAutoCommit(false);
// Execute SQL statements within a transaction
statement = connection.createStatement();
statement.executeUpdate("INSERT INTO users (username, password) VALUES ('user1', 'pass1')");
statement.executeUpdate("INSERT INTO users (username, password) VALUES ('user2', 'pass2')");
// Commit transaction
connection.commit();
System.out.println("Transaction completed successfully.");
} catch (SQLException e) {
// Rollback transaction in case of errors
try {
if (connection != null) {
connection.rollback();
System.out.println("Transaction rolled back.");
}
} catch (SQLException ex) {
ex.printStackTrace();
}
e.printStackTrace();
} finally {
// Close resources
try {
if (statement != null) {
statement.close();
}
if (connection != null) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
```
在上面的代码中,我们首先建立了一个数据库连接,然后通过调用 `setAutoCommit(false)` 方法来关闭自动提交模式,这样将使所有的 SQL 语句在一个事务中执行。接下来,我们执行了两个 SQL 语句来插入两条用户记录。如果这些语句都执行成功,我们将调用 `commit()` 方法来提交事务。如果在执行 SQL 语句时出现错误,我们将调用 `rollback()` 方法来回滚事务。最后,我们关闭了所有的数据库连接和语句对象。