云数据库 GaussDB-执行SQL语句:执行批处理

时间:2025-02-12 15:09:14

执行批处理

用一条预处理语句处理多条相似的数据,数据库只创建一次执行计划,节省了语句的编译和优化时间。可以按如下步骤执行:

  1. 调用Connection的prepareStatement方法创建预编译语句对象。

    123456
    // 认证用的用户名和密码直接写到代码中有很大的安全风险,建议在配置文件或者环境变量中存放(密码应密文存放,使用时解密),确保安全;// 本示例以用户名和密码保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量(环境变量名称请根据自身情况进行设置)EXAMPLE_USERNAME_ENV和EXAMPLE_PASSWORD_ENV。String userName = System.getenv("EXAMPLE_USERNAME_ENV");String password = System.getenv("EXAMPLE_PASSWORD_ENV");Connection conn = DriverManager.getConnection("url",userName,password);PreparedStatement pstmt = conn.prepareStatement("INSERT INTO customer_t1 VALUES (?)");

  2. 针对每条数据都要调用setShort设置参数,以及调用addBatch确认该条设置完毕。

    12
    pstmt.setShort(1, (short)2);pstmt.addBatch();

  3. 调用PreparedStatement的executeBatch方法执行批处理。

    1
    int[] rowcount = pstmt.executeBatch();

  4. 调用PreparedStatement的close方法关闭预编译语句对象。

    1
    pstmt.close();

    在实际的批处理过程中,通常不终止批处理程序的执行,否则会降低数据库的性能。因此在批处理程序时,应该关闭自动提交功能,每几行提交一次。关闭自动提交功能的语句为: conn.setAutoCommit(false);

support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-0062.html