检索 table 个名称的列表
Retrieve list of table names
我想获取数据库中 table 的列表。
The documentation of the tableList
command 表示此方法 returns 一个字符串列表,但事实并非如此。它实际上 returns 一个 TableList
对象。
而当我运行..
r.db("test").tableList().run(conn);
我得到一个 Result<Object>
对象作为结果,其中一个条目实际上是一个 ArrayList
,包含我想要的所有 table 个名称。
那么,这实际上是现在应该如何工作的吗:
Connection connection = r.connection().hostname(DEFAULT_HOSTNAME).port(DEFAULT_PORT).connect();
Object tableListObject = r.db(DEFAULT_DB_NAME).tableList().run(connection).single();
if (tableListObject instanceof Collection) {
List<?> tableList = new ArrayList<>((Collection<?>) tableListObject);
for(Object tableName : tableList) {
System.out.println(tableName);
}
}
对我来说似乎相当复杂,有没有 official/better 方法来做到这一点?
我正在使用 RethinkDB Java 驱动程序版本 2.4.4。
您可以利用 run()
方法,该方法允许您指定返回结果的 class - 在本例中为字符串数组:
Connection conn = r.connection().hostname("localhost").port(32769).connect();
List<?> tables = r.db("test").tableList().run(conn, ArrayList.class).first();
if (tables != null) {
tables.forEach(System.out::println);
}
对我来说,这会在我的测试数据库中打印以下内容:
movies
tv_shows
已更新为按照@Johannes 的建议使用 List<?>
。
我想获取数据库中 table 的列表。
The documentation of the tableList
command 表示此方法 returns 一个字符串列表,但事实并非如此。它实际上 returns 一个 TableList
对象。
而当我运行..
r.db("test").tableList().run(conn);
我得到一个 Result<Object>
对象作为结果,其中一个条目实际上是一个 ArrayList
,包含我想要的所有 table 个名称。
那么,这实际上是现在应该如何工作的吗:
Connection connection = r.connection().hostname(DEFAULT_HOSTNAME).port(DEFAULT_PORT).connect();
Object tableListObject = r.db(DEFAULT_DB_NAME).tableList().run(connection).single();
if (tableListObject instanceof Collection) {
List<?> tableList = new ArrayList<>((Collection<?>) tableListObject);
for(Object tableName : tableList) {
System.out.println(tableName);
}
}
对我来说似乎相当复杂,有没有 official/better 方法来做到这一点?
我正在使用 RethinkDB Java 驱动程序版本 2.4.4。
您可以利用 run()
方法,该方法允许您指定返回结果的 class - 在本例中为字符串数组:
Connection conn = r.connection().hostname("localhost").port(32769).connect();
List<?> tables = r.db("test").tableList().run(conn, ArrayList.class).first();
if (tables != null) {
tables.forEach(System.out::println);
}
对我来说,这会在我的测试数据库中打印以下内容:
movies
tv_shows
已更新为按照@Johannes 的建议使用 List<?>
。