数据库事务java代码举例
时间: 2023-10-11 22:11:47 浏览: 84
当然,我可以为您提供一个简单的Java代码示例来演示数据库事务的使用。
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class TransactionExample {
public static void main(String[] args) {
Connection connection = null;
try {
// 建立数据库连接
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "username", "password");
// 关闭自动提交
connection.setAutoCommit(false);
// 执行第一个SQL语句
String sql1 = "INSERT INTO table1 (column1, column2) VALUES (?, ?)";
PreparedStatement statement1 = connection.prepareStatement(sql1);
statement1.setString(1, "value1");
statement1.setString(2, "value2");
statement1.executeUpdate();
// 执行第二个SQL语句
String sql2 = "UPDATE table2 SET column3 = ? WHERE column4 = ?";
PreparedStatement statement2 = connection.prepareStatement(sql2);
statement2.setString(1, "new value");
statement2.setString(2, "some condition");
statement2.executeUpdate();
// 提交事务
connection.commit();
} catch (SQLException e) {
// 发生异常时回滚事务
try {
if (connection != null) {
connection.rollback();
}
} catch (SQLException ex) {
ex.printStackTrace();
}
e.printStackTrace();
} finally {
// 关闭连接
try {
if (connection != null) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
```
以上示例代码演示了如何在Java中使用数据库事务。首先,我们通过`DriverManager.getConnection()`方法建立与数据库的连接。然后,通过`setAutoCommit(false)`关闭自动提交功能,这样我们就可以手动控制事务的提交和回滚。接下来,我们执行多个SQL语句,并使用`PreparedStatement`来设置参数并执行更新操作。如果发生任何异常,我们将回滚事务。最后,我们关闭数据库连接。请注意,您需要将示例代码中的数据库URL、用户名和密码替换为您自己的实际值。
希望这个示例能对您有所帮助!如果您有任何其他问题,请随时提问。
阅读全文