소개
DB의 테이블들의 경우 컬럼명이 보통 date_format 형태로 되어있고, 이를 내려 받거나 변수 처리를 해야 할 VO의 필드값의 경우 dateFormat형태의 Camel표기법 형태로 되어 있는 경우가 많습니다.
컬럼 or 필드 값을 입력되어 있다면, 이전에 소개를 시켜드린 AnyEdit을 이용해 간단히 변경 할 수 있지만 (http://devchul.tistory.com/7) 보통 입력이 안되어 있으실 겁니다.
이러한 경우 간단히 값을 입력 할 수 있는 쿼리를 소개 하려 합니다.
준비
컬럼 값을 입력 할 테이블을 준비합니다.
- 테이블명 : T_BRAND
적용
1) 컬럼명 반환 및 별칭 Camel표기법 전환
***.xml 코딩하실 때 사용 하게 될 쿼리로
위에 테이블명 기준으로 쿼리를 돌리면 필드명 AS Camel표기법 과 where 조건 mybatis기준으로 변환됩니다.
[쿼리]
SELECT ','
|| A.COLUMN_NAME
|| ' AS '
|| LOWER(SUBSTR(A.CAMEL_CASE,1, 1))
|| SUBSTR(A.CAMEL_CASE,2) AS field
, '#{'||A.CAMEL_CASE|| '}' AS myBatis
FROM (
SELECT
COLUMN_NAME ,
REPLACE(initcap(COLUMN_NAME),'_') AS CAMEL_CASE
FROM ALL_TAB_COLUMNS
WHERE TABLE_NAME= '테이블명'
ORDER BY COLUMN_ID
)A;
[결과]
2) 컬럼명을 JAVA VO 변수로 전환
해당 쿼리를 돌리시면 vo 변수를 데이타 형식에 맞게 변환해줍니다.
[쿼리]
SELECT
'private ' ||
(CASE A.DATA_TYPE
WHEN 'NUMBER'
THEN 'long'
WHEN 'DATE'
THEN 'Date'
WHEN 'VARCHAR2'
THEN 'String'
WHEN 'CHAR'
THEN 'String'
ELSE ''
END
) ||
' ' ||
LOWER(SUBSTR(A.CAMEL_CASE,1, 1)) ||
SUBSTR(A.CAMEL_CASE,2) ||
';'AS RESULT
FROM (
SELECT
COLUMN_NAME,
DATA_TYPE,
REPLACE(initcap(COLUMN_NAME),'_') AS CAMEL_CASE
FROM ALL_TAB_COLUMNS
WHERE TABLE_NAME= '테이블명'
ORDER BY COLUMN_ID
)A;
[결과]
※ 오라클 기준입니다.
'웹개발 > DB' 카테고리의 다른 글
[DB] 툴을 이용하여 개발에 필요한 샘플데이터 만들기 (0) | 2018.06.06 |
---|---|
[DB] 엑셀데이터를 쿼리문의 IN 절에서 사용해보자 (0) | 2018.05.31 |