2016-08-30 5 views

답변

0

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; 
    } 
관련 문제