Java怎么开启事务来实现插入数据的操作,提高效率
时间: 2024-02-24 07:57:13 浏览: 72
在Java中如何使用事务
在Java中使用事务可以将多个SQL操作合并为一个批处理,从而提高效率和数据的一致性。以下是一个简单的示例代码:
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class TxtToMysql {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/testdb";
String user = "root";
String password = "123456";
String sql = "INSERT INTO mytable (col1, col2, col3) VALUES (?, ?, ?)";
try (Connection conn = DriverManager.getConnection(url, user, password);
PreparedStatement pstmt = conn.prepareStatement(sql)) {
conn.setAutoCommit(false); // 关闭自动提交事务
BufferedReader br = new BufferedReader(new FileReader("data.txt"));
String line;
while ((line = br.readLine()) != null) {
String[] data = line.split(",");
pstmt.setString(1, data[0]);
pstmt.setString(2, data[1]);
pstmt.setString(3, data[2]);
pstmt.addBatch(); // 添加批处理
}
pstmt.executeBatch(); // 执行批处理
conn.commit(); // 提交事务
br.close();
} catch (SQLException | IOException e) {
e.printStackTrace();
}
}
}
```
在上面的示例代码中,我们通过`conn.setAutoCommit(false)`方法关闭了自动提交事务,然后使用`pstmt.addBatch()`方法将每条插入语句添加到批处理中。在while循环结束后,我们调用了`pstmt.executeBatch()`方法来执行批处理,最后使用`conn.commit()`方法提交事务。这样,所有的插入操作就会被合并为一个批处理,从而提高了效率和数据的一致性。如果在批处理执行过程中发生异常,可以使用`conn.rollback()`方法回滚事务。
阅读全文