本文介绍了如何从数据库中获取所有表名?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从数据库模式中检索所有表名,并且如果可能的话,获取以指定前缀开头的所有表.

I'd like to retrieve all table names from a database schema, and, if possible, get all table starting with a specified prefix.

我尝试使用 JDBC 的 connection.getMetaData().getTables() 但它根本不起作用.

I tried using JDBC's connection.getMetaData().getTables() but it didn't work at all.

Connection jdbcConnection = DriverManager.getConnection("", "", "");
DatabaseMetaData m = jdbcConnection.getMetaData();
ResultSet tables = m.getTables(jdbcConnection.getCatalog(), null, "TAB_%", null);
for (int i = 0; i < tables.getMetaData().getColumnCount(); i++) {
   System.out.println("table = " + tables.getMetaData().getTableName(i));
}

有人可以帮助我吗?

推荐答案

您需要迭代调用 next() 的 ResultSet.

You need to iterate over your ResultSet calling next().

这是来自 java2s.com 的示例:

DatabaseMetaData md = conn.getMetaData();
ResultSet rs = md.getTables(null, null, "%", null);
while (rs.next()) {
  System.out.println(rs.getString(3));
}

3TABLE_NAME(请参阅 DatabaseMetaData::getTables).

Column 3 is the TABLE_NAME (see documentation of DatabaseMetaData::getTables).

这篇关于如何从数据库中获取所有表名?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

05-21 03:56