//구글광고

오라클 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




여기서  다운로드 하세요 >>>   

mkTblToVo3.sql




'oracle > sql' 카테고리의 다른 글

[오라클 내장함수1] oracle 문자열 함수  (0) 2018.11.21

+ Recent posts