Java ResultSetMetaData

2023. 2. 24. 11:05Java

프로젝트 내 src 내 javabaisc 패키지 내 MetaDataEx.java

package javabasic;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;

public class MetaDataEx {

	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub
//		드라이버등록
		Class.forName("oracle.jdbc.driver.OracleDriver");
		String url = "jdbc:oracle:thin:@localhost:1521:orcl";

		Connection conn = DriverManager.getConnection(url, "scott", "a1234");
		System.out.println("접속 성공!!!");
		Statement st = conn.createStatement();
		String query = "select * from employee";
		ResultSet rs = st.executeQuery(query);
		// 메타 데이타 구하기
		ResultSetMetaData md = rs.getMetaData();

		int cCnt = md.getColumnCount();
		System.out.println("컬럼 수: " + cCnt);

		for (int i = 1; i <= cCnt; i = i + 1) {
			String cName = md.getColumnName(i);
			int cType = md.getColumnType(i);
//			String cType = md.getColumnTypeName(i);
			System.out.println("컬럼 명: " + cName + "\t" + "칼럼타입 : " + cType);
		}
		System.out.println("++++++++++++++");
		for (int i = 1; i <= cCnt; i = i + 1) {
			System.out.println(i + "컬럼 널허용체크:" + md.isNullable(i)); // 널:1, not null:0
			System.out.println(i + "읽기 전용 체크:" + md.isReadOnly(i));
			System.out.println(i + "쓰기가능 체크:" + md.isWritable(i));
		}

		System.out.println("+++칼럼 사이즈 구하기+++");
		for (int i = 1; i <= cCnt; i = i + 1) {
			int cSize = md.getColumnDisplaySize(i);
			System.out.println(i + "번째 컬럼의 사이즈 :" + cSize);
		}

		if (rs != null)
			rs.close();
		if (st != null)
			st.close();
		if (conn != null)
			conn.close();
	}

}

실행 결과

접속 성공!!!
컬럼 수: 4
컬럼 명: ID	칼럼타입 : 2
컬럼 명: NAME	칼럼타입 : 12
컬럼 명: SALARY	칼럼타입 : 2
컬럼 명: HIRE_DATE	칼럼타입 : 93
++++++++++++++
1컬럼 널허용체크:1
1읽기 전용 체크:false
1쓰기가능 체크:true
2컬럼 널허용체크:1
2읽기 전용 체크:false
2쓰기가능 체크:true
3컬럼 널허용체크:1
3읽기 전용 체크:false
3쓰기가능 체크:true
4컬럼 널허용체크:1
4읽기 전용 체크:false
4쓰기가능 체크:true
+++칼럼 사이즈 구하기+++
1번째 컬럼의 사이즈 :22
2번째 컬럼의 사이즈 :15
3번째 컬럼의 사이즈 :22
4번째 컬럼의 사이즈 :7

int java.sql.ResultSetMetaData.getColumnType(int column) throws SQLException

getColumnType(int column) 메서드는 지정된 열의 SQL 형이라는 정보를 끌어낸다.

getColumnType(int column) 메서드는 java.sql.Types 클래스에 있는 SQL 형을 반환한다.

 

int java.sql.ResultSetMetaData.getColumnDisplaySize(int column) throws SQLException

getColumnDisplaySize(int column) 메서드는 지정된 열으 정상적인(보통의, 평균의) 최대 문자열 폭을 나타낸다.

 

 

'Java' 카테고리의 다른 글

Java CallableStatement  (0) 2023.02.26
Java executeBatch()  (0) 2023.02.26
Java Collections class  (0) 2023.02.21
Java executeUpdate()  (0) 2023.02.20
Java execute(String sql)  (0) 2023.02.20