DB → java VO 자동 생성 SQL
http://blog.naver.com/star4079/110167218643
/***********************************************************************
* [ DB → java VO 자동 생성 ]
*
* ex) DEL_YN ↘
* private String delYn; [* 삭제여부 *]
* public String getDelYn() { return delYn; }
* public void setDelYn(String delYn) { this.delYn = delYn; }
***********************************************************************/
DECLARE
P_OWNER VARCHAR2(100); /* 사용자계정 */
P_TABLE VARCHAR2(100); /* 테이블명 */
R_VAR VARCHAR2(32000); /* 변수 */
R_GET VARCHAR2(32000); /* get 메소드 */
R_SET VARCHAR2(32000); /* set 메소드 */
BEGIN
P_OWNER := '사용자계정';
P_TABLE := '테이블명';
R_VAR := '';
R_GET := '';
R_SET := '';
FOR X IN (
SELECT
LOWER(SUBSTR(TC.COLUMN_NAME,0,1))
|| SUBSTR( REPLACE(INITCAP(TC.COLUMN_NAME), '_'), 2, LENGTH(REPLACE(INITCAP(TC.COLUMN_NAME), '_'))-1) AS COLUMN_NAME
, TC.DATA_TYPE
, COMMENTS
, decode(DATA_TYPE, 'VARCHAR2', 'String', 'CHAR', 'String', 'DATE', 'String', 'NUMBER', 'int', 'String') AS JAVA_TYPE
FROM
ALL_TAB_COLUMNS TC
, ALL_COL_COMMENTS CC
WHERE
TC.OWNER = CC.OWNER
AND TC.TABLE_NAME = CC.TABLE_NAME
AND TC.COLUMN_NAME = CC.COLUMN_NAME
AND TC.OWNER = P_OWNER
AND TC.TABLE_NAME = P_TABLE
)
LOOP
R_VAR := R_VAR || 'private ' || X.JAVA_TYPE || ' ' || X.COLUMN_NAME || '; /* ' ||X.COMMENTS||' */' || CHR(13);
R_GET := R_GET || 'public ' || X.JAVA_TYPE || ' get' || UPPER(SUBSTR(X.COLUMN_NAME, 1, 1))||SUBSTR(X.COLUMN_NAME, 2) || '() { return ' ||X.COLUMN_NAME||'; }' || CHR(13);
R_SET := R_SET || 'public void set' || UPPER(SUBSTR(X.COLUMN_NAME, 1, 1))||SUBSTR(X.COLUMN_NAME, 2) || '(' || X.JAVA_TYPE||' ' || X.COLUMN_NAME ||') { this.' ||X.COLUMN_NAME||' = '|| X.COLUMN_NAME|| '; }'|| CHR(13);
END LOOP;
DBMS_OUTPUT.ENABLE(1000000);
DBMS_OUTPUT.PUT_LINE(R_VAR);
DBMS_OUTPUT.PUT_LINE(R_GET);
DBMS_OUTPUT.PUT_LINE(R_SET);
END;