写一段数据回滚范例
时间: 2023-07-03 11:16:17 浏览: 113
以下是一个简单的数据回滚范例,用于在发生异常时回滚数据库中的数据:
```java
Connection conn = null;
PreparedStatement pstmt = null;
try {
// 获得数据库连接
conn = getConnection();
// 开始事务
conn.setAutoCommit(false);
// 执行SQL语句,插入或更新数据库中的数据
pstmt = conn.prepareStatement("INSERT INTO my_table (id, name) VALUES (?, ?)");
pstmt.setInt(1, 1);
pstmt.setString(2, "John");
pstmt.executeUpdate();
// 发生异常,回滚数据
if (someExceptionOccurs) {
conn.rollback();
throw new Exception("An exception occurred");
}
// 提交事务
conn.commit();
} catch (Exception e) {
// 出现异常,回滚数据
if (conn != null) {
try {
conn.rollback();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
e.printStackTrace();
} finally {
// 关闭连接
if (pstmt != null) {
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
```
这段代码使用了 JDBC 的事务管理机制,当发生异常时会回滚之前的数据。在具体实现时,需要根据具体业务逻辑进行相应的修改,比如可以在异常处理中加入日志记录、异常抛出等操作。
阅读全文