0
私はcamel-sqlコンポーネントを使用して、指定されたテーブル名のすべてのカラムのメタデータを取得する方法を探しています。camel-sqlコンポーネントからテーブルのメタデータを取得する方法
舞台裏でspring-jdbcを使用していますが、ResultSetMetaDataを取得する方法はありません。
私はcamel-sqlコンポーネントを使用して、指定されたテーブル名のすべてのカラムのメタデータを取得する方法を探しています。camel-sqlコンポーネントからテーブルのメタデータを取得する方法
舞台裏でspring-jdbcを使用していますが、ResultSetMetaDataを取得する方法はありません。
私はcamel-sqlコンポーネントから列の詳細を取得する直接の方法を見つけることができませんでした。今はspring jdbcテンプレートとデータソースを使用して情報を取得できました。
public List<String> getColumnNamesFromTable(final TableData tableData) throws MetaDataAccessException {
final List<String> columnNames = new ArrayList<String>();
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
StringBuilder query = new StringBuilder();
query.append("SELECT * FROM ").append(SINGLE_BLANK_SPACE);
query.append(tableData.getSchemaName());
query.append(tableData.getTableName()).append(SINGLE_BLANK_SPACE);
query.append("WHERE rownum < 0");
jdbcTemplate.query(query.toString(), new ResultSetExtractor<Integer>() {
@Override
public Integer extractData(ResultSet rs) throws SQLException, DataAccessException {
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount();
for (int i = 1; i <= columnCount; i++) {
columnNames.add(rsmd.getColumnName(i).toUpperCase());
}
return columnCount;
}
});
return columnNames;
}