'mybatis'에 해당되는 글 2건

  1. 2013.09.11 mybatis interface mapper기반에서 HashMap 가져오기. (2)
  2. 2013.08.23 mybatis DDL


현재 개발중인 플랫폼은 다양한 값들이 필요로 하고, 실행환경에서 변경이 필요하다. 그래서 filter나 properties방식이 아닌, KEY-VALUE Table을 만들어 넣고 이 테이블을 Properties로 쓰려고 하였다.


현재 Mybatis의 사용방법은  'Mapper Annotations'방법에 조금 복잡한 쿼리들은 기존의 XML 방법으로 이용하고 있다.  (참고 :  http://mybatis.github.io/mybatis-3/java-api.html )


[ SELECT NAME, VALUE FROM XXX_PLATFORM_ENV ] 라는 아주 단순한 쿼리이기 때문에 가능하면 annotation 으로 처리하고 싶어서 별짓을 다 해봤으나... 내가 원하는 KEY-VALUE의 MAP으로 받을수가 없었다.

가잡 근접하게 나온 결과가

key = {NAME=key, VALUE=....}, key = {NAME=key, VALUE=....} 이런결과였다 

즉, <Key, Key + 필드> 형태로 나오지 <Key, 1개 필드> 형태는 죽어도 못 뽑아내겠더라... 

대충 

@Select("SELECT name, value  FROM INFO_ENVIRONMENT")
@MapKey("key")
@Results({
@Result(column="name", property="key", id=true),
@Result(column="value", property="value", id=false)
})

어차피 mapper라 상위 service에서 List -> Map 으로 변경하는게 가장 속 편할 거 같다....

(XML mapper나, resultHandler를 쓰지 않고 Map<String, String>을 뽑아 낼수는 없을걸까?)



신고

mybatis DDL

gossip 2013.08.23 15:11 posted by dev.bistro

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

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/프로시저 말고 좋은 방법이 있을까요?

신고

'gossip' 카테고리의 다른 글

maven to gradle (with 1.7 & NPE)  (0) 2013.08.28
maven to gradle  (0) 2013.08.27
mybatis DDL  (0) 2013.08.23
coursera - Startup Engineering  (0) 2013.06.26
Creative Programming for Digital Media & Mobile Apps week#1  (0) 2013.06.16
Creative Programming for Digital Media & Mobile Apps  (0) 2013.06.12


티스토리 툴바