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

完整示例

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

public class BatchQuery {
    public static Connection getConnection() throws ClassNotFoundException, SQLException {
        String driver = "com.huawei.gaussdb.jdbc.Driver";
        //  指定数据库sourceURL($ip、$port、database请根据业务场景进行修改)。
        String sourceURL = "jdbc:gaussdb://$ip:$port/database";
        // 用户名和密码从环境变量中获取。
        String userName = System.getenv("EXAMPLE_USERNAME_ENV");
        String password = System.getenv("EXAMPLE_PASSWORD_ENV");
        Class.forName(driver);
        return DriverManager.getConnection(sourceURL, userName, password);
    }

    public static void main(String[] args) {
        String selectSql = "select * from tab_test";
        try (Connection conn = getConnection(); PreparedStatement preparedStatement = conn.prepareStatement(selectSql)) {
            conn.setAutoCommit(false);
            preparedStatement.setFetchSize(3);
            try (ResultSet resultSet = preparedStatement.executeQuery()) {
                while (resultSet.next()) {
                    // 打印部分查询结果。
                    int id = resultSet.getInt(1);
                    System.out.println("row:" + resultSet.getRow() + ",id :" + id);
                }
                ResultSetMetaData metaData = resultSet.getMetaData();
                System.out.println("结果列:" + metaData.getColumnCount());
                System.out.println("类型编号:" + metaData.getColumnType(1));
                System.out.println("类型名:" + metaData.getColumnTypeName(1));
                System.out.println("列名:" + metaData.getColumnName(1));
            }
            conn.commit();
        } catch (ClassNotFoundException | Exception e) {
            throw new RuntimeException(e);
        }
    }
}

结果验证

完整示例运行结果如下:

row:1,id :1
row:2,id :2
row:3,id :3
row:4,id :4
row:5,id :5
结果列:2
类型编号:4
类型名:int4
列名:id

回退方法

若需关闭批量查询功能,则去除连接串的fetchsize参数并且重新设置setFetchSize为默认值0。

相关文档