먼저 DB에 테이블을 만들고, 이를 통해 구문을 만들어내면 VO 등을 작업할 때 편하게 이용할 수 있음.
자바에는 ResultSetMetaData라 하는 테이블의 속성 저장용 인터페이스가 있음.
여기에 저장한 후 메서드를 통해 총 열 수, 열 이름, 속성 등을 불러옴.
불러온 속성은 int 값이고, class types를 확인하면 각 int에 따른 값 속성을 볼 수 있음(Constant Field Values 참고).
클래스를 실행하면 콘솔창에 값이 뜨고, 이를 통해 작업을 할 수 있음.
package org.soju.foodstore.util;
import java.sql.ResultSetMetaData;
public class VOMaker {
public static void main(String[] args) throws Exception {
final String query = "select * from tbl_menu where rownum=1";
new SQLAgent() {
@Override
protected void doJob() throws Exception {
pstmt=con.prepareStatement(query);
rs = pstmt.executeQuery();
ResultSetMetaData meta = rs.getMetaData();
int colCount = meta.getColumnCount();
System.out.printf("컬럼수: %d \n", colCount);
for (int i = 1; i <= colCount; i++) {
int type = meta.getColumnType(i);
//System.out.println(type);
String javaType = getType(type);
String name = meta.getColumnName(i).toLowerCase();
//System.out.println(name);
System.out.printf("private %s %s;\n", javaType, name);
}
}
private String getType(int type){
String result = "String";
switch (type) {
case 2:
result = "Integer";
break;
case 93:
result = "Date";
break;
default:
break;
}
return result;
}
}.doExecute();
}
}
'코딩 > Oracle' 카테고리의 다른 글
JDBC설계 Step2 - (3) GenericDAO 만들기, Java Generic 예제 (0) | 2014.09.18 |
---|---|
JDBC설계 Step2 - (2) MenuVo 추가 (0) | 2014.09.18 |
JDBC설계 Step1 - (4) org.soju.foodstore.test, java.sql.date와 Calendar 예제 (0) | 2014.09.18 |
JDBC설계 Step1 - (3) org.soju.foodstore.dao, Java enum 예제 (0) | 2014.09.17 |
JDBC설계 Step1 - (2) org.soju.foodstore.util; (0) | 2014.09.17 |