更新时间:2025-08-19 GMT+08:00
分享

具体步骤

  1. 连接数据库

    连接串常用参数推荐如下,具体设置方法可参考《开发指南》中“应用程序开发教程 > 基于JDBC开发 > 开发步骤 > 连接数据库 > 连接参数参考”章节。

    • connectTimeout:用于连接服务器操作系统的超时值,单位为秒。当JDBC与数据库建立TCP连接的时间超过此值,则连接断开。根据网络情况进行配置。默认值:0,推荐值:2。
    • socketTimeout:用于socket读取操作的超时值,单位为秒。如果从服务器读取数据流所花费的时间超过此值,则连接关闭。如果不配置该参数,在数据库进程异常情况下,会导致客户端出现长时间等待,建议根据业务可以接受的SQL执行时间进行配置。默认值:0,无推荐值。
    • connectionExtraInfo:表示驱动是否将当前驱动的部署路径、进程属主用户以及url连接配置信息上报到数据库。默认值:false,推荐值:true。
    • logger:应用如果使用第三方日志框架记录日志信息,推荐使用实现slf4j接口的第三方日志框架记录JDBC日志,方便出现异常定位。使用了第三方日志框架的推荐值:Slf4JLogger。
    • batchMode: 是否使用batch模式连接,配置batchMode=on时,执行批量插入/批量修改操作,每一列的数据类型以第一条数据指定的类型为准。
      String url = "jdbc:gaussdb://$ip:$port/database?connectTimeout=xx&socketTimeout=xx&connectionExtraInfo=true&logger=Slf4JLogger&autoBalance=true&batchMode=on"
      Connection conn = DriverManager.getConnection("url",userName,password);

  2. 准备批量操作SQL语句

    使用preparedStatement对语句进行预编译。用户可将语句替换成业务具体需要执行的语句。以下是往测试表中插入数据的语句:
    String sql = "INSERT INTO  TEST_BATCH(v1,v2) VALUES(?,?)";
    PreparedStatement preparedStatement = conn.prepareStatement(sql);

  3. 批量绑定参数

    通过preparedStatement绑定参数,然后执行addBatch将SQL语句添加到批量执行列表。
    for(int i=0;i<5;i++){
        preparedStatement.setString(1,"value1_"+i);
        preparedStatement.setString(2,"value2_"+i);
        preparedStatement.addBatch();
    }

  4. 执行批量操作

    preparedStatement执行executeBatch执行批量操作,返回一个int类型的数组results,通过打印results数组可以查看批量操作影响的数据条目数。
    Int[] results = preparedStatement.executeBatch();
    System.out.println(Arrays.toString(results));

  5. 释放资源和关闭数据库连接

    preparedStatement.close();
    conn.close();

  6. 异常处理

    在程序运行中需要使用try-catch模块对SQLException做异常处理,根据自身业务在异常处理逻辑部分添加对异常的处理逻辑。
    try {
    // 业务代码
    } catch (SQLException e) {
    // 异常处理逻辑
    }

相关文档