[java] JDBC ResultSet에서 열 수를 얻는 방법은 무엇입니까?
답변
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(1));
System.out.println("Column Type Name of 1st column: "+rsmd.getColumnTypeName(1));
답변
코드로 얻을 수 있는 결과 집합 의 열 수 (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);
답변
이것은 데이터를 열로 인쇄하고 마지막 열에 도달하면 새 줄에옵니다.
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));
}
}