2016-08-04 13 views
1

Ich habe eine Cassandra resulset, die ich in MySql Resultset konvertieren möchte.Convert ArrayList/Hash Karte zu Resultset

Ich habe das Cassandra Ergebnis in Arraylist umgewandelt. Ich versuche jetzt, es in SQL-Ergebnismenge zu konvertieren. Ich kann Arraylist nicht in SQL-Ergebnismenge konvertieren. Alternativ habe ich versucht, Cassandra resultset in Hashmap zu konvertieren und dann in SQL resultset zu konvertieren. Aber auch kein Glück.

Bitte lassen Sie mich wissen, ob die oben genannten Sache möglich ist oder ihre anderen Weg aus.

+0

Warum brauchen Sie das? Ich bin überrascht, dass das jemand lieber hätte. –

+0

Ich habe Berichte, die mit MySQL Resulset generiert wird. Ich versuche jetzt, die gleichen Berichte mit Cassandra zu erstellen. Mit minimalen Änderungen am bestehenden Code habe ich versucht, die obigen Änderungen vorzunehmen. – SnehaT

Antwort

0

Ein SQL ResultSet ist eine riesige Schnittstelle mit vielen Methoden. Aber ich nehme an, dass Sie nur einige davon in Ihren Berichten verwenden. So könnten Sie wahrscheinlich eine Adapter-Klasse erstellen, bei der alle nicht verwendeten Methoden einfach eine UnsupportedOperationException auslösen und die anderen Delegierten an das Cassandra ResultSet delegieren. Etwas wie dieses:

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 
    } 

    ... 
}