如何使用 Java 从 Oracle 表中获取所有列的名称? 有没有办法从 DatabaseMetaData 对象中获取它们?
DatabaseMetaData myDatabaseMetaData = myConnection.getMetaData();
...
我知道我可以使用 select 语句获取它们:
Select COLUMN_NAME from user_tab_columns where table_name='MYTABLE'
如果可以从 DatabaseMetaData 对象中获取它们,那么这两种方法有什么区别?
编辑:发布工作代码(感谢您的回答)
public ArrayList<String> getAllFields(String tableName) {
ArrayList<String> allFields = new ArrayList<String>();
try {
DatabaseMetaData myDatabaseMetaData = myConnection.getMetaData();
ResultSet columnsResultSet = myDatabaseMetaData.getColumns(null, null, tableName, null);
while (columnsResultSet.next()) { allFields.add(columnsResultSet.getString("COLUMN_NAME")); }
} catch (SQLException ex) {
Exceptions.printStackTrace(ex);
}
return allFields;
}
最佳答案
您正在寻找DatabaseMetaData.getColumns()
好吧,您的 SQL 和 JDBC API 之间的区别在于,API 调用应该适用于所有 DBMS,而 SQL 仅适用于 Oracle。
关于java - 如何从 Oracle 表中获取所有列的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8124086/