
# 具体步骤
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) {
   // 异常处理逻辑
   }
   ```
   
   
 
