2016-08-04 39 views
1

我有一个Cassandra resulset,我试图将其转换为MySql结果集。将ArrayList /哈希映射转换为结果集

我已将Cassandra结果集转换为Arraylist。我现在试图将其转换为SQL结果集。我无法将Arraylist转换为SQL结果集。或者我试图将Cassandra结果集转换为Hashmap,然后转换为SQL结果集。但是也没有运气。

请让我知道,如果上述事情是可能的或他们的任何其他出路。

+0

为什么你需要那个?我很惊讶任何人都会喜欢这一点。 –

+0

我有使用MySQL Resulset生成的报告。我正在尝试使用Cassandra生成相同的报告。因此,只需对现有代码进行最小限度的更改,我就可以尝试执行上述更改。 – SnehaT

回答

0

SQL ResultSet是一个巨大的接口,有很多种方法。但我想你只是在报告中使用其中的一些。所以你可以创建一个Adapter类,其中所有未使用的方法只是抛出一个UnsupportedOperationException异常,其他的方法委托给Cassandra ResultSet。类似这样的:

public CassandraResultSetAdapter implements java.sql.ResultSet { 
    private final Iterator<Row> delegate; 
    private Row currentRow; 

    public CassandraResultSetAdapter(ResultSet cassandraResultSet) { 
     this.delegate = cassandraResultSet.iterator(); 
    } 

    @Override 
    public boolean next() { 
     if (delegate.hasNext()) { 
      return false; 
     } 
     else { 
      this.currentRow = delegate.next(); 
      return true; 
     } 
    } 

    @Override 
    public String getString(String columnName) { 
     return currentRow.getString(columnName); 
    } 

    @Override 
    public String getString(String columnIndex) { // starts at 1 
     return currentRow.getString(columnIndex - 1); // starts at 0 
    } 

    ... 
}