有没有一种方法可以使用Spring的SimpleJdbcTemplate获取数据库中所有表名的列表?

如果可以提供任何帮助,则查询的数据库是Oracle。谢谢。

最佳答案

Spring有一个 DatabaseMetaDataCallback 对象,可以处理duffymo链接到的解决方案的某些样板方面。然后,您可以在调用 JDBCUtils.extractDatabaseMetaData 时传递该对象。

可以使用here找到一个示例,尝试使用这些类进行相同的调用。

该链接的示例代码:

类(class):

class GetTableNames implements DatabaseMetaDataCallback {

        public Object processMetaData(DatabaseMetaData dbmd) throws SQLException {
            ResultSet rs = dbmd.getTables(dbmd.getUserName(), null, null, new String[]{"TABLE"});
            ArrayList l = new ArrayList();
            while (rs.next()) {
                l.add(rs.getString(3));
            }
            return l;
        }
    }

用法:
GetTableNames getTableNames = new GetTableNames();
try {
    Object o = JdbcUtils.extractDatabaseMetaData(dataSource, getTableNames);
    System.out.println(o);
} catch (MetaDataAccessException e) {
    System.out.println(e);
}

10-05 19:26