반응형
JDBC ResultSet에서 열 수를 얻는 방법은 무엇입니까?
내가 사용하고 CsvJdbc을 을 CSV 파일에 액세스하기 위해 (이 CSV - 파일에 대한 JDBC 드라이버입니다). csv 파일에 몇 개의 열이 있는지 모르겠습니다. 열 수를 어떻게 얻을 수 있습니까? 이것에 대한 JDBC 기능이 있습니까? java.sql.ResultSet에서 이에 대한 메소드를 찾을 수 없습니다.
파일에 액세스하기 위해 CsvJdbc 웹 사이트 의 예제 와 유사한 코드를 사용합니다 .
ResultSetMetaData 에서 열 번호를 가져올 수 있습니다 .
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(query);
ResultSetMetaData rsmd = rs.getMetaData();
int columnsNumber = rsmd.getColumnCount();
PreparedStatement ps=con.prepareStatement("select * from stud");
ResultSet rs=ps.executeQuery();
ResultSetMetaData rsmd=rs.getMetaData();
System.out.println("columns: "+rsmd.getColumnCount());
System.out.println("Column Name of 1st column: "+rsmd.getColumnName(2));
System.out.println("Column Type Name of 1st column: "+rsmd.getColumnTypeName(2));
코드로 얻을 수 있는 결과 집합 의 열 수 (DB는 PostgreSQL로 사용됨) :
// PostgreSQL 용 드라이버로드 Class.forName ( "org.postgresql.Driver"); 문자열 url = "jdbc : postgresql : // localhost / test"; 속성 props = new Properties (); props.setProperty ( "user", "mydbuser"); props.setProperty ( "password", "mydbpass"); 연결 conn = DriverManager.getConnection (url, props); // 문 만들기 문 stat = conn.createStatement (); // 결과 세트 얻기 ResultSet rs = stat.executeQuery ( "SELECT c1, c2, c3, c4, c5 FROM MY_TABLE"); // 결과 세트에서 메타 데이터 제공 ResultSetMetaData rsmd = rs.getMetaData (); // 메타 데이터 개체의 열 개수 int numOfCols = rsmd.getColumnCount ();
그러나 열에 대한 더 많은 메타 정보를 얻을 수 있습니다.
for(int i = 1; i <= numOfCols; i++)
{
System.out.println(rsmd.getColumnName(i));
}
그리고 최소한 테이블에 대한 정보뿐만 아니라 DB에 대한 정보도 얻을 수 있습니다 . 수행 방법은 여기 와 여기에서 찾을 수 있습니다 .
연결을 설정하고 쿼리를 실행 한 후 다음을 시도하십시오.
ResultSet resultSet;
int columnCount = resultSet.getMetaData().getColumnCount();
System.out.println("column count : "+columnCount);
This will print the data in columns and comes to new line once last column is reached.
ResultSetMetaData resultSetMetaData = res.getMetaData();
int columnCount = resultSetMetaData.getColumnCount();
for(int i =1; i<=columnCount; i++){
if(!(i==columnCount)){
System.out.print(res.getString(i)+"\t");
}
else{
System.out.println(res.getString(i));
}
}
참고URL : https://stackoverflow.com/questions/2614416/how-to-get-the-number-of-columns-from-a-jdbc-resultset
반응형
'Programing' 카테고리의 다른 글
Exists 1 또는 Exists *를 사용하는 하위 쿼리 (0) | 2020.09.17 |
---|---|
iframe을 숨길 때 YouTube 플레이어를 일시 중지하는 방법은 무엇입니까? (0) | 2020.09.17 |
SQL Server에서 중복 레코드를 삭제 하시겠습니까? (0) | 2020.09.17 |
jQuery AJAX 호출에 대한 로딩 표시기 구현 (0) | 2020.09.17 |
Swift-두 줄의 텍스트가있는 UIButton (0) | 2020.09.17 |