Programing

JDBC ResultSet에서 열 수를 얻는 방법은 무엇입니까?

lottogame 2020. 9. 17. 18:49
반응형

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

반응형