Dataphin 通过SDK代码调用“服务”模块发布的“Dataphin数据源”查询逻辑表数据,返回数据为空

更新时间:
复制 MD 格式

问题描述

通过SDK代码调用“服务”模块发布的“Dataphin数据源”查询逻辑表数据,返回数据为空。但是直接拿SQL语句在Dataphin平台运行可以查询到数据。

Dataphin平台查询结果如下:

具体的代码如下:

public class DataphinDataSourceTest {

  public static final String URL = "jdbc:dataphin://XXX/prod_dev_api";
  public static final String USER = "XXX";
  public static final String PASSWORD = "XXXX";
  public static void main(String[] args) throws Exception {
    //1.加载驱动程序
    Class.forName("com.dataphin.jdbc.Driver");
    //2. 获得数据库连接
    Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
    //3.操作数据库,实现增删改查
    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery("select * from ld_eyc.fct_engagement_unit_info_di where ds='20230129'"
        );
    //如果有数据,rs.next()返回true
    while(rs.next()){
      System.out.println("=========================有数据=============================");
      System.out.println(rs.getString("unit"));
    }
    conn.close();
  }

问题原因

SDK调用代码问题。该行代码 ResultSet rs = stmt.executeQuery("select * from ld_eyc.fct_engagement_unit_info_di where ds='20230129'"查询时候返回的rs已经调过rs.next了,再while(rs.next) 判断就取不到数据了。

解决方案

取消while(rs.next) 循环判断的时候问题解决。

适用于

  • Dataphin