如何从 Oracle NoSQL table 中获取所有行?
How to get all rows from Oracle NoSQL table?
如何在 Java 中使用 TableAPI 从 Oracle NoSQL table 获取所有行?
我可以通过主键值获取记录。示例:
TableAPI tableH = kvstore.getTableAPI();
Table myTable = tableH.getTable("myTable");
PrimaryKey key = myTable.createPrimaryKey();
key.put("item", "Hat");
List<Row> myRows = null;
try {
myRows = tableH.multiGet(key, null, null);
} catch (ConsistencyException ce) {
} catch (RequestTimeoutException re) {
}
for (Row theRow: myRows) {
String itemType = theRow.get("item").asString().get();
}
System.out.println(itemType);
但是我无法获取主键值。
要修改您的示例,您可以通过对 table 使用空主键并使用 TableAPI.tableIterator() 方法之一来获取所有行。关于示例的注释,TableAPI.getTable() 将执行远程调用,因此应隐藏和重用 Table 句柄。
TableAPI tableH = kvstore.getTableAPI();
/*
* get the Table, but be careful about doing this frequently,
* as it performs a remote call.
*/
Table myTable = tableH.getTable("myTable");
PrimaryKey key = myTable.createPrimaryKey();
try {
/* create and use an iterator on the Row value */
TableIterator<Row> rowIter = tableH.tableIterator(key, null, null);
while (rowIter.hasNext()) {
Row row = rowIter.next();
/* do something */
}
/*
* Or...
* create and use an iterator on the PrimaryKey values.
* This is much faster than fetching the data as well if
* you only need fields in the primary key.
*/
TableIterator<PrimaryKey> keyIter =
tableH.tableKeysIterator(key, null, null);
while (keyIter.hasNext()) {
PrimaryKey key = rowIter.next();
/* do something */
}
} catch (FaultException fe) {
}
如何在 Java 中使用 TableAPI 从 Oracle NoSQL table 获取所有行? 我可以通过主键值获取记录。示例:
TableAPI tableH = kvstore.getTableAPI();
Table myTable = tableH.getTable("myTable");
PrimaryKey key = myTable.createPrimaryKey();
key.put("item", "Hat");
List<Row> myRows = null;
try {
myRows = tableH.multiGet(key, null, null);
} catch (ConsistencyException ce) {
} catch (RequestTimeoutException re) {
}
for (Row theRow: myRows) {
String itemType = theRow.get("item").asString().get();
}
System.out.println(itemType);
但是我无法获取主键值。
要修改您的示例,您可以通过对 table 使用空主键并使用 TableAPI.tableIterator() 方法之一来获取所有行。关于示例的注释,TableAPI.getTable() 将执行远程调用,因此应隐藏和重用 Table 句柄。
TableAPI tableH = kvstore.getTableAPI();
/*
* get the Table, but be careful about doing this frequently,
* as it performs a remote call.
*/
Table myTable = tableH.getTable("myTable");
PrimaryKey key = myTable.createPrimaryKey();
try {
/* create and use an iterator on the Row value */
TableIterator<Row> rowIter = tableH.tableIterator(key, null, null);
while (rowIter.hasNext()) {
Row row = rowIter.next();
/* do something */
}
/*
* Or...
* create and use an iterator on the PrimaryKey values.
* This is much faster than fetching the data as well if
* you only need fields in the primary key.
*/
TableIterator<PrimaryKey> keyIter =
tableH.tableKeysIterator(key, null, null);
while (keyIter.hasNext()) {
PrimaryKey key = rowIter.next();
/* do something */
}
} catch (FaultException fe) {
}