'iBATIS'에 해당되는 글 3건

  1. 2014.09.01 iBatis 주의사항..
  2. 2012.06.27 iBatis로 insert한 후 설공 여부 알아오기.
  3. 2009.09.15 iBATIS Lazy Loading...!
iBATIS2014. 9. 1. 20:01

iBatis를 사용하여 개발을 진행하다가 파라미터로 Map을 넘겨줄때가 있다.

이때 쿼리문 안에 #KeyValue#로 파라미터를 넣어주게 되는데..

KeyValue값이 대소문자를 가린다.

소문자로 되어있는 키값을 대문자로 써넣고 왜 값이 안나오나 null값만 리턴을 하나 죽어라고 디버깅 했는데..

결론은 대소문자를 구분하네.

대소문자 구분..주의 하도록 하자..

'iBATIS' 카테고리의 다른 글

iBatis 주의사항..두번째  (0) 2014.09.16
iBatis로 insert한 후 설공 여부 알아오기.  (0) 2012.06.27
iBatis DTD 오류..!  (0) 2011.07.15
MSSql - iBatis에서 Insert후 Seq값 Return하기.  (0) 2011.07.01
iBATIS Lazy Loading...!  (0) 2009.09.15
Posted by Z700zZz
iBATIS2012. 6. 27. 17:18

블로그를 처음 시작 하면서 iBatis로 insert한 후 입력된 데이터의 pk값을 가져오는 법을 포스팅 했었다.


그게 벌써 몇년전인지..내가 저런글을 썼나 싶을 정도로 오래(?)..


이번은 시퀀스 값이나 pk값이 아닌 그저 성공여부를 가져오는 법을 포스팅 하려한다.


방법은??


간단하다 insert메소드가 아닌 update메소드로 insert쿼리를 실행하면 결과 값으로 성곤한 row의 값이 리턴 값으로 넘어오게 된다.


성공하면 1, 성공하지 못하면 0.


원래 그냥 selectKey를 이용해서 시퀀스나 PK값을 가져오지 않으면 Null을 리턴하게 되어있다.


위와같은 방법으로 시퀀스가 필요 없을 때 값이 제대로 들어갔는지 확인이 가능하다.

'iBATIS' 카테고리의 다른 글

iBatis 주의사항..두번째  (0) 2014.09.16
iBatis 주의사항..  (0) 2014.09.01
iBatis DTD 오류..!  (0) 2011.07.15
MSSql - iBatis에서 Insert후 Seq값 Return하기.  (0) 2011.07.01
iBATIS Lazy Loading...!  (0) 2009.09.15
Posted by Z700zZz
iBATIS2009. 9. 15. 13:43
iBATIS로 조인을 해보려 했다.
일반적인 조인 쿼리로는 결과를 불러 오지를 못했다.
이때 필요한게 Lazy Loading...!
테이블의 구성은 A라는 테이블의 aa라는 컬럼이 PK로 지정이 되어있고..
B라는 테이블의 aa라는 컬럼이 A테이블의 aa컬럼의 FK로 지정, bb라는 컬럼이 B 테이블의 PK로 지정..
C라는 테이블의 bb라는 컬럼이 B테이블의 bb컬럼의 FK로 지정, cc라는 컬럼이 C테이블의 PK로 지정 되어있는 상태..
A테이블의 aa컬럼을 검색했을때  A 테이블 B 테이블 C 테이블이 모두 PK와 FK로 묶여 있으니 검색한 내용에 해당되는 모든 데이터를 보고싶었다.
그러기 위해서는 약간의 꼼수??가 필요했다.

우선 A테이블의 Java Model 부분코딩이다.
public class A{

    private String ...;
    private List<B> bList;

    public List<B> getBList() {
        return bList;
    }

    public void setBList(List<B> bList) {
        this.bList = bList;
    }
}

A클래스의 필요한 프로퍼티들을 선언하고 프로퍼티 부분 마지막을 보면 List가 추가되어있다.
바로 A테이블을 검색했을때 B테이블의 내용들을 담기위한 List인 것이다.
그다음 A테이블의 SqlMap부분이다.

<resultMap id="aResult" class="a">
        <result property="..." column="..."/>
        <result property="bList" column="aa" select="bb.selecBbByAa"/>
</resultMap>

B의 SqlMap에가서 selectBbByAa의 쿼리문을 만들어 주자..

<select id="selectBbByAa" parameterClass="string" resultMap="bResult">
     select *
       from B
      where aa=aa
</select>

ResultMap에 모델 객체와 똑같이 매핑을 시켜주면..쿼리문을 실행하고 ResultMap에 매핑된대로 결과값을 넘겨줄때..
bList부분은 B테이블에 쿼리를 실행한 결과를 넣어서 넘겨주게 된다.
이제 C테이블의 것도 가지고 와야 하는데...뭐 방법은 똑같다.
B 모델에 C 모델의 리스트를 프로퍼티로 선언해주고...B 의 SqlMap파일에 가서 ResultMap에 cList를 추가해주고 뒤에 select문을 넣어주면 된다. C의 SqlMap파일에가서 쿼리문을 만들어 주는건 당연한 것이고...
이제 A테이블에 있는 정보를 한건이 됐든 여러건이 됐든 iBATIS에서 쿼리를 하게 되면 알아서 자동적으로 다 딸려오게 되어있다.
가지고온 데이터를 처리하는 방법은...List로 가지고 오니 알아서 처리하면 될것...ㅋ
일단 가지고 오는지 가지고 오지 못하는지 시험하기 위해 짜놓은 코드...

        A a = this.aService.listAByAa("aa");
        List<B> bList = a.getBList();
        for(int j = 0;j < bList.size();j++){
            B b = new B();
            b = bList.get(j);
            List<C> elevatorList = b.getcList();
            for(int x = 0;x < cList.size();x++){
                C c = new C();
                c = cList.get(x);
            }
        }

위의 코드는 객체로 가져와 리스트를 가져오고 또다시 각가의 객체를 가져온다음 또다시 리스트를 가지고 오는 방식이다.
지금은 한건만을 가지고 오기 때문에 객체로 받았지만 여러건을 가지고 올때는 객체로 받지않고 리스트로 받을수도 있다.
설명 부분에 있어서 뭔가 부족한 부분이 많은것 같다..
이제 이값을 BlazeDS로 Flex로 넘기고 또 그 값을 처리하는걸 알아내자...!

'iBATIS' 카테고리의 다른 글

iBatis 주의사항..두번째  (0) 2014.09.16
iBatis 주의사항..  (0) 2014.09.01
iBatis로 insert한 후 설공 여부 알아오기.  (0) 2012.06.27
iBatis DTD 오류..!  (0) 2011.07.15
MSSql - iBatis에서 Insert후 Seq값 Return하기.  (0) 2011.07.01
Posted by Z700zZz