설 연수
하하호홓
설 연수
전체 방문자
오늘
어제
  • 분류 전체보기 (231)
    • Back-End (2)
      • Java (20)
      • JSP (13)
      • Spring (18)
      • Kotlin (0)
      • node.js (0)
    • Front-End (68)
      • JavaScript (19)
      • jQuery (39)
      • Angular (4)
      • HTML (5)
    • Dev-Ops (12)
      • Linux, Cloud (5)
      • docker, k8s (5)
      • ElasticSeach (2)
    • Other (33)
      • OOP (3)
      • 알고리즘 (2)
      • DB (12)
      • Git (1)
      • Swift (4)
    • Backup (65)

블로그 메뉴

    공지사항

    인기 글

    태그

    • Kafka
    • flex
    • RESTful
    • angular2
    • angular 콜백
    • jOOQ
    • page not found
    • CORS
    • 크로스도메인
    • INVALID
    • 404 error
    • angular callback
    • mongodb
    • jquery invalid
    • angular4
    • Redis
    • docker
    • 패스트캠퍼스
    • Angular
    • MYSQL

    최근 댓글

    최근 글

    티스토리

    hELLO · Designed By 정상우.
    설 연수

    하하호홓

    Back-End/Spring

    ibatis 태그. 자주 쓰는 것들.

    2012. 5. 15. 11:01

    링크스크랩에서 본문 스크랩으로 전환하였습니다.

    맘껏퍼가시고 출처를 밝혀주시면 감사하겠습니다.^-^

    덧글도 남겨주심 ㄳㄳ.

     

    출처 : http://happy2ni.egloos.com/9609765 

    [iBatis] 주요 태그 Tag

    1] Alias
       <typeAlias alias="asName" type="package.SampleClassName"/>

    2] 기본 태그
        Select : <select  id="test" parameterClass="package.ClassName" resultClass="package.ClassName" >
        Insert  : <insert   id="test" parameterClass="package.ClassName"  >
        Update: <update id="test" parameterClass="package.ClassName"  >
        Delete : <delete  id="test" parameterClass="package.ClassName"  >
        Statement : <statement  id="test" parameterClass="package.ClassName"  >

    3] 프로퍼티 존재여부
        존재할때 : <isPropertyAvailable property="a"></isPropertyAvailable>
        존재하지 않을때 : <isNotPropertyAvailable property="a"></isNotPropertyAvailable>

    4] 프로퍼티 Null 체크
        Null 일때 : <isNull property="a"></isNull>
        Null 아닐때 : <isNotNull property="a"></isNotNull>

    5] 프로퍼티 Empty 체크
        Empty 일때 : <isEmpty property="a"></isEmpty>
        Empty 아닐때 : <isNotEmpty property="a"></isNotEmpty>

    6] 프로퍼티 값비교
        같을때 : <isEqual property="a" compareValue="K"></isEqual>
        같지 않을때 : <isNotEqual property="a" compareValue="K"></isNotEqual>

    7] ParameterMap    
        <parameterMap id="paramMap" class="package.ClassName">
            <parameter property="id" />
            <parameter property="name" javaType="java.lang.String"  jdbcType="VARCHAR"   mode="IN"/>
            <parameter property="msg" javaType="java.lang.String"  jdbcType="VARCHAR"   mode="OUT"/>
        </parameterMap>

    8] ResultMap    
        <resultMap id="reMap" class="package.ClassName">
            <result property="id" column="test_id" />
        </resultMap>
     
    9] Dynamic    
        <select>
        select a from test
        <dynamic prepend="where">
            <isNotNull property="a" >id = #a#</isNotNull>
            <isNotNull property="b" prepend="AND">name = #b#</isNotNull>

            <isNotNull property="c" prepend="AND" open="(" close=")">
                <isNotNull property="c" > no = #c#</isNotNull>
                </isNotNull property="c" prepend="OR">no_as = #d#</isNotNull>
            </isNotNull>
        </dynamic>
        </select> 

     

    ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

    뭐 기본적으로 다오임플단에서 제어해주거나 서비스임플단에서 제어해주면 좋겠지만 xml로 넘겨서 쿼리부분에서 처리하면

    좀더 간단한 처리가 되지 않을까 싶다. 특히 ibatis에서 자주 쓰는건 달력사용으로 날짜검색이나 네임밸류로 한 값들은 검색할때

    아주 유용한 코드라 생각된다. 그리고 isNotEqual, isNotEmpty 같은 태그는 아주아주 자주사용하는 태그니 꼭 알아두었으면 좋겟다.

    아! 그리고 resultMap이나 ParameterMap 같은건 왜 사용하는지 아직 잘 이해가 되지 않는다. 물론 위에서 정의해줌으로

    필요 없는 값들은 제외하고 필요한 값들만 가져오거나 리턴해주겠다는 생각은 알겠지만 이미 앞서서 모델이나 DTO 같은 것 따위로

    javaclass로 정의해주고 있지 않나. 그럼 위에서 <select>이나 <statment> 뭐 사용하는거마다 틀리겟지만 기본적으로

    <statement id="aaa" parameterClass="paramModel" resultMap="paramModel" >로 정의를 내려주면 아주아주 귀찮은

    param, result Map을 정의해주는 따위의 작업은 없어지게 되지 않을까 생각한다.

    뭐 난 이렇게 사용하지만. 암튼 이렇든 저렇든 다들 장점이 있기때문에 다들 사용하겠지만서도...역시 처음 사용한게 이런 방법이라서

    그런가..-_ -;;; 역시 개발자들은 처음 배운것에 목메고 새로운것을 받아 들이기 싫어 함과 함께 고집이 센가부다....ㅋㅋㅋㅋㅋㅋㅋㅋ

    뭐!!!!!!!!!!!!!!!!!!!!!!!! 내 맴이지. 별다른 개발 정의서가 없다면 일단 개발자 편의로 가야 좋을듯 싶다.! 왜냐.! 빠른시일내에 개발을

    요구 받는이상 이런거라도 좀 편하게 하던가 해야지...후후후훗.!!-_ -b

    저작자표시 (새창열림)

    'Back-End > Spring' 카테고리의 다른 글

    SpringMVC에서 간단한 ExceptionResolver 구성하기  (0) 2012.06.26
    스프링에서 Content Type별 View 자동 맵핑 하기  (0) 2012.06.26
    Spring - Interceptor 를 사용한 login 처리  (0) 2012.04.27
    톰켓 org.springframework.web.context.ContextLoaderListener 에러  (0) 2012.04.17
    log4j.xml  (0) 2012.02.28
      'Back-End/Spring' 카테고리의 다른 글
      • SpringMVC에서 간단한 ExceptionResolver 구성하기
      • 스프링에서 Content Type별 View 자동 맵핑 하기
      • Spring - Interceptor 를 사용한 login 처리
      • 톰켓 org.springframework.web.context.ContextLoaderListener 에러
      설 연수
      설 연수

      티스토리툴바