Java ResultSetMetaData
2023. 2. 24. 11:05ㆍJava
프로젝트 내 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 |