更新时间:2025-08-19 GMT+08:00
具体步骤
- 连接数据库
连接串常用参数推荐如下,具体设置方法可参考《开发指南》中“应用程序开发教程 > 基于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);
- 准备批量操作SQL语句
使用preparedStatement对语句进行预编译。用户可将语句替换成业务具体需要执行的语句。以下是往测试表中插入数据的语句:
String sql = "INSERT INTO TEST_BATCH(v1,v2) VALUES(?,?)"; PreparedStatement preparedStatement = conn.prepareStatement(sql);
- 批量绑定参数
通过preparedStatement绑定参数,然后执行addBatch将SQL语句添加到批量执行列表。
for(int i=0;i<5;i++){ preparedStatement.setString(1,"value1_"+i); preparedStatement.setString(2,"value2_"+i); preparedStatement.addBatch(); }
- 执行批量操作
preparedStatement执行executeBatch执行批量操作,返回一个int类型的数组results,通过打印results数组可以查看批量操作影响的数据条目数。
Int[] results = preparedStatement.executeBatch(); System.out.println(Arrays.toString(results));
- 释放资源和关闭数据库连接
preparedStatement.close(); conn.close();
- 异常处理
在程序运行中需要使用try-catch模块对SQLException做异常处理,根据自身业务在异常处理逻辑部分添加对异常的处理逻辑。
try { // 业务代码 } catch (SQLException e) { // 异常处理逻辑 }
父主题: 操作步骤