[Oracle] 테이블 기준으로 Service 자동으로 만들어주는 프로시저

전상훈·2021년 5월 14일

오라클

목록 보기
6/7
CREATE OR REPLACE PROCEDURE UNIVCOOP_DEV.PROC_TABLE_TO_SERVICE
(
	V_TABLE_NAME IN VARCHAR2,
	SQL_DESC OUT VARCHAR2
)
IS
	V_BASE_CLASS VARCHAR(20) := '';
BEGIN
	
	SQL_DESC := '';
	V_BASE_CLASS := REPLACE(INITCAP( V_TABLE_NAME  ),'_','');
   
	SQL_DESC := SQL_DESC || '/** ' || V_BASE_CLASS || 'Service 인터페이스 */' || CHR(13);
	SQL_DESC := SQL_DESC || 'public interface ' || V_BASE_CLASS || 'Service extends BossDBService<' || V_BASE_CLASS || 'DtoReq,  '  || V_BASE_CLASS || 'Dto' || '>' || CHR(13);
	SQL_DESC := SQL_DESC || '{}' || CHR(13) || CHR(13) ;


	SQL_DESC := SQL_DESC || '/** ' || V_BASE_CLASS || 'ServiceImpl 구현클래스 */' || CHR(13);
	SQL_DESC := SQL_DESC || '@Primary' || CHR(13);
	SQL_DESC := SQL_DESC || '@Service' || CHR(13);
	SQL_DESC := SQL_DESC || 'public class ' || V_BASE_CLASS || 'Dao extends BossDBService<' || V_BASE_CLASS || 'DtoReq,  '  || V_BASE_CLASS || 'Dto' || '>' || CHR(13);
	SQL_DESC := SQL_DESC || '{' || CHR(13) || CHR(13);
	
	SQL_DESC := SQL_DESC || CHR(9) || 'private final ' || V_BASE_CLASS || 'Dao;'  || CHR(13) || CHR(13);
	SQL_DESC := SQL_DESC || CHR(9) || 'public ' || V_BASE_CLASS || 'ServiceImpl( ' || V_BASE_CLASS || 'Dao) { this.dao = dao; }'  || CHR(13) || CHR(13);


	SQL_DESC := SQL_DESC || CHR(9) || '@Transactional(isolation = Isolation.READ_COMMITTED, propagation = Propagation.REQUIRED, rollbackFor = Exception.class)' || CHR(13);
	SQL_DESC := SQL_DESC || CHR(9) || '@Override' || CHR(13);
	SQL_DESC := SQL_DESC || CHR(9) || 'public List<' || V_BASE_CLASS || 'Dto> getList(' || V_BASE_CLASS || 'DtoReq req) throws Exception {' || CHR(13);
	SQL_DESC := SQL_DESC || CHR(9) || '   return dao.getList(req);' || CHR(13);
	SQL_DESC := SQL_DESC || CHR(9) || '}' || CHR(13);

	SQL_DESC := SQL_DESC || CHR(9) || '@Transactional(rollbackFor = Exception.class)' || CHR(13);
	SQL_DESC := SQL_DESC || CHR(9) || '@Override' || CHR(13);
	SQL_DESC := SQL_DESC || CHR(9) || 'public ApiDto insert(' || V_BASE_CLASS || 'Dto data) throws Exception {' || CHR(13);
	SQL_DESC := SQL_DESC || CHR(9) || '    dao.insert(data);' || CHR(13);
	SQL_DESC := SQL_DESC || CHR(9) || '    return BossServiceResponse.getOk();' || CHR(13);
]	SQL_DESC := SQL_DESC || CHR(9) || '}' || CHR(13);
	SQL_DESC := SQL_DESC || CHR(9) || '' || CHR(13);
	SQL_DESC := SQL_DESC || CHR(9) || '@Transactional(rollbackFor = Exception.class)' || CHR(13);
	SQL_DESC := SQL_DESC || CHR(9) || '@Override' || CHR(13);
	SQL_DESC := SQL_DESC || CHR(9) || 'public ApiDto update(' || V_BASE_CLASS || 'Dto data) throws Exception {' || CHR(13);
	SQL_DESC := SQL_DESC || CHR(9) || '    dao.update(data);' || CHR(13);
	SQL_DESC := SQL_DESC || CHR(9) || '    return BossServiceResponse.getOkUpdate();' || CHR(13);
	SQL_DESC := SQL_DESC || CHR(9) || '}' || CHR(13);
	SQL_DESC := SQL_DESC || CHR(9) || '' || CHR(13);
	SQL_DESC := SQL_DESC || CHR(9) || '@Transactional(rollbackFor = Exception.class)' || CHR(13);
	SQL_DESC := SQL_DESC || CHR(9) || '@Override' || CHR(13);
	SQL_DESC := SQL_DESC || CHR(9) || 'public ApiDto delete(' || V_BASE_CLASS || 'DtoReq data) throws Exception {' || CHR(13);
	SQL_DESC := SQL_DESC || CHR(9) || '    dao.delete(data);' || CHR(13);
	SQL_DESC := SQL_DESC || CHR(9) || '    return BossServiceResponse.getOkDelete();' || CHR(13);
	SQL_DESC := SQL_DESC || CHR(9) || '}' || CHR(13);

	SQL_DESC := SQL_DESC || '}' || CHR(13) ; 
END;
profile
개발을 하는 사람

0개의 댓글