posted by 빛그루터기 2012. 3. 28. 13:25

예정 ibatis에서 사용하던 <isEmpty></isEmpty>나 <isNull></isNull> 등을 비교구문은 mybatis에서 사용할 수 없다

그럼 mybatis에서는 어떤 비교구문을 사용할까?

 

가장 기초는 <if test="비교구문">쿼리</if>이다

 

기본적으로 사용하는 비교연산자 ==, !=, >, < 등을 사용하여 비교할 수 있다

<if test='변수명=="A"'>쿼리</if>

<if test="변수명 !='A'">쿼리</if> ...

 

그 다음 in 연산자를 사용할 수 있다.

<if test="변수명 in {'A','B','C'}"></if>

 

choose : 자바의 switch 구문과 유사

기본구성

<choose>

    <when test ="조건문">쿼리</when>

    <when test ="조건문">쿼리</when>

    <otherwise>쿼리</otherwise>  //java의 if구문에서 esle와 같은 역활

</choose>

 

그외에도 foreach등 여러가지가 있다. 

'프로그램 > mybatis(ibatis)' 카테고리의 다른 글

mybatis에서 procedure 호출하기  (0) 2012.03.28
selectKey 값 DAOImpl에서 가져오기  (0) 2012.03.28
posted by 빛그루터기 2012. 3. 28. 13:24

<insert id="insertTable" parameterType="HashMap" statementType="CALLABLE">
  { CALL procedure명 (#{a}, #{b}, #{c}, #{d}) } 
 </insert>

 

여기서 중요한 부분은 procedure를 호출 할때  statementType="CALLABLE" 를 추가해야 된다는것과

{와 CALL사이에는 한칸의 공간만 허용한다하는 것이다. 즉, { 과 CALL사이가 두칸이상 떨어졌거나

줄바꿈이 되어 있다면 procedure는 호출되지 않는다.

'프로그램 > mybatis(ibatis)' 카테고리의 다른 글

mybatis 조건 태그모음  (0) 2012.03.28
selectKey 값 DAOImpl에서 가져오기  (0) 2012.03.28
posted by 빛그루터기 2012. 3. 28. 13:24

mybatis에서 insert를 할 경우 저장 후 최종 시퀀스 값을 selectKey로 해서 넘겨주는데

이 넘겨준 값을 Spring에서 DAOImpl에서 어떻게 받느냐하면

 

mybatis에서  selectKey로 값을 넘겨 줍니다.

이때 keyProperty로 해당 값의 변수를 지정해 준다 (DTO에 해당 변수명 있어야됨)

 

<insert id="insertBoard" parameterType="newboard">
    INSERT INTO FAQ (
        B_NO, REF, STEP, B_LEVEL, NAME, SUBJ, NEWCONTENTS, HIT, REGIDATE,

        CONTENT, NOTICEYN
    ) VALUES (

        SEQ_FAQBNO.NEXTVAL, #{ref}, '0', '0', #{name}, #{subj}, #{newcontents}, '0', sysdate,

        #{newcontents}, 'N'
    )
    <selectKey resultType="int" keyProperty="b_no" order="AFTER">
        SELECT MAX(B_NO)  AS B_NO FROM FAQ

    </selectKey>
</insert>

 

 

DAOImpl 소스

다른 소스를 보면

int b_no = (int)getSqlSession().insert("newboard.insertBoard", newBoardDTO);

이렇게 되어 있는데 이렇게 하면 무조건 1로 반환되더군요;

 

아래 소스처럼 insert구분은 따로 selectKey값 받아오는것 따로입니다.

selectKey값이  해당 모델(DTO파일)의 keyProperty값과 같은 변수를 찾아 담아서 보내줍니다.

그럼 그 값을 해당 모델에서 꺼내오면 되는군요;

 

 @Override
 public int insertBoard(NewBoardDTO newBoardDTO) throws Exception {
     getSqlSession().insert("newboard.insertBoard", newBoardDTO);
     int b_no = newBoardDTO.getB_no();
     return b_no;
 } 

'프로그램 > mybatis(ibatis)' 카테고리의 다른 글

mybatis 조건 태그모음  (0) 2012.03.28
mybatis에서 procedure 호출하기  (0) 2012.03.28
posted by 빛그루터기 2012. 3. 28. 13:20

web.zip


답글형계시판 일단 소스 압축해서 먼저 올림 

환경은 기존에 예제 올렸던 환경과 같습니다.

 

eclipse 인디고

톰켓 7.0.22

spring 3.1.0

mabatis3.0.5

ckediter

 

관련 라이브러니는 첨부파일에 같이 있습니다 

'프로그램 > spring' 카테고리의 다른 글

Spring3 초간단 파일업로드  (0) 2012.04.18
ORA-01000: 최대 열기 커서 수를 초과  (0) 2012.03.28