오라클 DB - JSP vo(beans), DAO, DTO 생성 스크립트 v3
이전포스트에서 사용하던 스크립트를 조금 다듬었다.
(이전포스트 : http://kimazfactory.tistory.com/40 )
사용방법
1 ) sqlplus 에서 해당 유저로 로그인 하여 mktbltovo3.sql 을 실행한다.
2) ENTER TABLE_NAME > 라는 프롬프트가 뜨면 테이블 명을 입력한다.
이전버전에는 대문자로만 입력했어야 하는데 이제 대소문자 가리지 않게 수정했다.
테이블 이름을 입력하면 해당 테이블에 제일처음
VO를 만들기 위한 선언문이 나오고
2번째 화면에 DAO 에 insert 문을 생성하기 위한 SQL구문과
set 구문을 생성해준다.
이번 버전에서 물음표와 컬럼이름 뒤에 컴마를 수정했다.
3번째 화면에서 셀렉트 구문을 생성하기 위해서 사용하는
Vo에 값을 set 하는 구문을 생성해준다.
버그 제보 및 기능개선을 비밀 댓글로
출처는 표기해서 가져가시고 비밀 댓글로 퍼간다는 멘트정도 남겨주시고
드래그해서 컨트롤 C 안되는 곳에는 절대 배포 금지
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | REM ******************************************************** REM * 명 칭 : mkTblToVo REM * 목 적 : 테이블 컬럼을 jsp용 VO 로 변경해주는 스크립트 REM * REM * REM * 파라미터 : p1, p2, p3 .. REM * REM * 작 성 자 : 2018/06/01 김과장 (kimazfactory@gmail.com) REM * 수정이력 : v3 컴마수 맞추기 REM * 메 모 : 12/04 Select DAO 용 구문 추가 REM * 12/06 컴마수 맞추기 REM ******************************************************** SET SERVEROUTPUT ON size 1000000 SET PAGESIZE 10000 SET FEEDBACK OFF SET ECHO OFF SET VERIFY OFF SET LINESIZE 300 SET HEADING OFF ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY/MM/DD HH24:MI'; ACCEPT TABLE_NAME PROMPT 'ENTER TABLE_NAME >' declare lvar_col_name varchar2(512) := ''; lvar_data_type varchar2(512) := ''; lvar_index1 number:=0; lvar_index2 number:=0; CURSOR cur_column IS select column_name, data_type from user_tab_cols where table_name=upper('&TABLE_NAME') order by COLUMN_ID; begin OPEN cur_column; dbms_output.put_line(''); dbms_output.put_line('VO information of table : &TABLE_NAME'); dbms_output.put_line(''); dbms_output.put_line('----------------------------------------------'); dbms_output.put_line(''); LOOP FETCH cur_column INTO lvar_col_name, lvar_data_type; EXIT WHEN cur_column%NOTFOUND; IF lvar_data_type = 'VARCHAR2' then dbms_output.put_line('private String '||lvar_col_name||';'); ELSIF lvar_data_type = 'NUMBER' then dbms_output.put_line('private int '||lvar_col_name||';'); ELSIF lvar_data_type = 'DATE' then dbms_output.put_line('private Timestamp '||lvar_col_name||';'); ELSE dbms_output.put_line('--Check it!!!-- '||lvar_col_name||';'); END IF; END LOOP; CLOSE cur_column; OPEN cur_column; dbms_output.put_line(''); dbms_output.put_line('----------------------------------------------'); dbms_output.put_line(''); dbms_output.put_line('Insert DAO Query for : &TABLE_NAME'); dbms_output.put_line(''); dbms_output.put('String sql="insert into &TABLE_NAME ('); lvar_index1 :=0; LOOP FETCH cur_column INTO lvar_col_name, lvar_data_type; IF cur_column%NOTFOUND THEN EXIT; ELSE IF lvar_index1 > 0 THEN dbms_output.put(','); END IF; END IF; dbms_output.put(lvar_col_name); lvar_index1 := lvar_index1+1; END LOOP; dbms_output.put(') values ('); CLOSE cur_column; OPEN cur_column; lvar_index1 :=0; LOOP FETCH cur_column INTO lvar_col_name, lvar_data_type; IF cur_column%NOTFOUND THEN EXIT; ELSE IF lvar_index1 > 0 THEN dbms_output.put(','); END IF; END IF; dbms_output.put('?'); lvar_index1 := lvar_index1+1; END LOOP; dbms_output.put(')";'); CLOSE cur_column; dbms_output.put_line(''); OPEN cur_column; lvar_index2:=1; LOOP FETCH cur_column INTO lvar_col_name, lvar_data_type; EXIT WHEN cur_column%NOTFOUND; IF lvar_data_type = 'VARCHAR2' then dbms_output.put_line('pstmt.setString('||lvar_index2||', dVo.get'||lvar_col_name||'());'); ELSIF lvar_data_type = 'NUMBER' then dbms_output.put_line('pstmt.setInt('||lvar_index2||', dVo.get'||lvar_col_name||'());'); ELSIF lvar_data_type = 'DATE' then dbms_output.put_line('pstmt.setTimestamp('||lvar_index2||', dVo.get'||lvar_col_name||'());'); ELSE dbms_output.put_line('--Check it!!!-- '||lvar_col_name||';'); END IF; lvar_index2:=lvar_index2+1; END LOOP; CLOSE cur_column; dbms_output.put_line(''); dbms_output.put_line('----------------------------------------------'); dbms_output.put_line(''); dbms_output.put_line('SELECT DAO Query for : &TABLE_NAME'); dbms_output.put_line(''); OPEN cur_column; lvar_index2:=1; LOOP FETCH cur_column INTO lvar_col_name, lvar_data_type; EXIT WHEN cur_column%NOTFOUND; IF lvar_data_type = 'VARCHAR2' then dbms_output.put_line('Vo.set'||lvar_col_name||'(rs.getString('||lvar_index2||'));'); ELSIF lvar_data_type = 'NUMBER' then dbms_output.put_line('Vo.set'||lvar_col_name||'(rs.getInt('||lvar_index2||'));'); ELSIF lvar_data_type = 'DATE' then dbms_output.put_line('Vo.set'||lvar_col_name||'(rs.getTimestamp('||lvar_index2||'));'); ELSE dbms_output.put_line('--Check it!!!-- '||lvar_col_name||';'); END IF; lvar_index2:=lvar_index2+1; END LOOP; CLOSE cur_column; end; / | cs |
여기서 다운로드 하세요 >>>
'oracle > sql' 카테고리의 다른 글
[오라클 내장함수1] oracle 문자열 함수 (0) | 2018.11.21 |
---|