有没有一种方法可以使用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);
}