java批量执行sql语句

可以使用JDBC的Statement或PreparedStatement对象,循环执行SQL语句。或者使用框架如MyBatis、Hibernate等进行批量操作

批量执行SQL可以使用JDBC(Java Database Connectivity)来实现,以下是一个简单的示例,展示了如何使用Java批量执行SQL语句

1、需要导入相关的包:

java批量执行sql语句

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

2、创建一个方法来批量执行SQL语句

public class BatchExecuteSQL {
    public static void main(String[] args) {
        String url = "jdbc:mysql://localhost:3306/test_db";
        String user = "root";
        String password = "password";
        try {
            // 加载驱动
            Class.forName("com.mysql.jdbc.Driver");
            // 获取数据库连接
            Connection connection = DriverManager.getConnection(url, user, password);
            // 关闭自动提交
            connection.setAutoCommit(false);
            // 创建预处理语句
            String sql = "INSERT INTO users (name, age) VALUES (?, ?)";
            PreparedStatement preparedStatement = connection.prepareStatement(sql);
            // 添加批量数据
            for (int i = 0; i < 10; i++) {
                preparedStatement.setString(1, "User" + i);
                preparedStatement.setInt(2, 20 + i);
                preparedStatement.addBatch();
            }
            // 执行批量操作
            int[] result = preparedStatement.executeBatch();
            // 提交事务
            connection.commit();
            // 关闭资源
            preparedStatement.close();
            connection.close();
            System.out.println("批量插入成功,影响的行数:" + result.length);
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        }
    }
}

在这个示例中,我们首先加载了MySQL的JDBC驱动,然后通过DriverManager.getConnection()方法获取到了数据库连接,接着,我们关闭了自动提交功能,以便我们可以手动控制事务。

java批量执行sql语句

我们创建了一个预处理语句,用于插入数据,在这个例子中,我们使用了?作为占位符,并通过preparedStatement.setString()preparedStatement.setInt()方法设置了具体的值,我们还使用preparedStatement.addBatch()方法将这个语句添加到了批处理中。

接下来,我们调用preparedStatement.executeBatch()方法执行了批量操作,这个方法会返回一个整数数组,表示每个语句影响的行数,我们提交了事务,并关闭了资源。

java批量执行sql语句

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/642544.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希新媒体运营
上一篇 2024-05-21 15:16
下一篇 2024-05-21 15:18

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入