b

mybatis DDL 본문

gossip

mybatis DDL

dev.bistro 2013. 8. 23. 15:11

일반적인 웹서비스가 아닌, 웹 플랫폼 시스템을.. 만들고있다. 

Spring, MyBatis를 기본으로 진행하고 있고 Job의 실행 내용중 DDL이 큰 비중을 차지 한다

MyBatis는 직접적으로 DDL을 지원하지 않는다. 하지만 꾸역꾸역 쓸수는 있다.


@Update("CREATE TABLE TEMP_DATA${id} LIKE TEMP_DATA")

public void createTempDataTable(@Param(value="id") String id);

그렇지만 return value는 의미가 없어진다. https://github.com/mybatis/mybatis-3/blob/master/src/main/java/org/apache/ibatis/binding/MapperMethod.java#L42  실제로 성공을 하던 실패를 하던, https://github.com/mybatis/mybatis-3/blob/master/src/main/java/org/apache/ibatis/binding/MapperMethod.java#L75 는 null / 0 / false를 반환한다. 단, 실패를 하면... 'BadSqlGrammarException' 가 나오는 경우도 있지만 이것도 100퍼센트는 아니다.


그렇다고 Job프로세싱의 일부인 DDL을 프로시저로 돌리기는 싫다. 현재로서는, Mybatis의 DDL을 의심하면서 사용하도록 한다. 

(IBatis부터, statement를 이용한 DDL을 이용하였지만, 그땐... 그냥 내가 생각을 하지 않은거 같다=.=)


ps. JDBC/프로시저 말고 좋은 방법이 있을까요?

Comments