이를 위해 ResultSetMetaData를 사용하십시오. 먼저 테이블을 생성하겠습니다 -
mysql> create table DemoTable -> ( -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> StudentFirstName varchar(20), -> StudentLastName varchar(20) -> ); Query OK, 0 rows affected (0.58 sec)
자바 코드는 다음과 같습니다 -
예시
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; import com.mysql.jdbc.ResultSetMetaData; public class ResultSetDemo { public static void main(String[] args) { Connection con = null; PreparedStatement ps = null; Statement st = null; ResultSet rs = null; try { con = DriverManager.getConnection("jdbc:mysql://localhost:3306/web?useSSL=false", "root", "123456"); String query = "select StudentId,StudentFirstName,StudentLastName from DemoTable"; st = con.createStatement(); rs = st.executeQuery(query); ResultSetMetaData rsmd = (ResultSetMetaData) rs.getMetaData(); int numberOfColumn = rsmd.getColumnCount(); System.out.println(" Number Of Columns: " + numberOfColumn); System.out.println("All Details Of Columns:"); for (int i = 1; i <= numberOfColumn; i++) { String columnName = rsmd.getColumnName(i); String dataTypeOfColumn = rsmd.getColumnTypeName(i); System.out.println(columnName + " has data type " + dataTypeOfColumn); } } catch (Exception e) { e.printStackTrace(); } } }
출력
Number Of Columns: 3 All Details Of Columns: StudentId has data type INT StudentFirstName has data type VARCHAR StudentLastName has data type VARCHAR
출력의 스냅샷은 다음과 같습니다 -