将ArrayList / Hash映射转换为Resultset

时间:2016-08-04 06:53:01

标签: java mysql cassandra

我有一个Cassandra结果集,我试图将其转换为MySql结果集。

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

如果上述事情是可能的,请告诉我。或者他们是否有任何其他方法。

1 个答案:

答案 0 :(得分: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
    }

    ...
}