云主机测评网云主机测评网云主机测评网

云主机测评网
www.yunzhuji.net

java批量提交sql

可以使用JDBC的批量处理功能,将多个SQL语句合并为一个批次进行提交,以提高执行效率。

批量提交SQL是指在一次数据库操作中,执行多个SQL语句,在Java中,可以使用JDBC(Java Database Connectivity)来实现批量提交SQL,以下是一个简单的示例:

1、需要导入相关的包:

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

2、创建一个方法来批量提交SQL:

public void batchInsert(String[] sqls) {
    // 数据库连接字符串,用户名和密码
    String url = "jdbc:mysql://localhost:3306/test";
    String user = "root";
    String password = "123456";
    Connection connection = null;
    PreparedStatement preparedStatement = null;
    try {
        // 加载驱动
        Class.forName("com.mysql.jdbc.Driver");
        // 获取数据库连接
        connection = DriverManager.getConnection(url, user, password);
        // 关闭自动提交
        connection.setAutoCommit(false);
        // 创建预处理语句对象
        for (String sql : sqls) {
            preparedStatement = connection.prepareStatement(sql);
            preparedStatement.executeUpdate();
        }
        // 提交事务
        connection.commit();
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    } catch (SQLException e) {
        // 回滚事务
        if (connection != null) {
            try {
                connection.rollback();
            } catch (SQLException ex) {
                ex.printStackTrace();
            }
        }
        e.printStackTrace();
    } finally {
        // 关闭资源
        if (preparedStatement != null) {
            try {
                preparedStatement.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (connection != null) {
            try {
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

3、调用该方法进行批量插入:

public static void main(String[] args) {
    String[] sqls = {
            "INSERT INTO users (name, age) VALUES ('张三', 18)",
            "INSERT INTO users (name, age) VALUES ('李四', 20)",
            "INSERT INTO users (name, age) VALUES ('王五', 22)"
    };
    new Main().batchInsert(sqls);
}

这个示例中,我们创建了一个batchInsert方法,该方法接收一个包含多个SQL语句的字符串数组,在方法内部,我们使用JDBC连接到数据库,并关闭自动提交,我们遍历SQL语句数组,为每个语句创建一个预处理语句对象,并执行更新,我们提交事务并关闭资源。

打赏
版权声明:主机测评不销售、不代购、不提供任何支持,仅分享信息/测评(有时效性),自行辨别,请遵纪守法文明上网。
文章名称:《java批量提交sql》
文章链接:https://www.yunzhuji.net/internet/178526.html

评论

  • 验证码