Mapper 방식은 아래 처럼 사용한다.
	
	    
	    
	


pacakge com.openerp.dao

public interface RoleDao{
	List listRole(Parameters params);
	List listRole(Parameters params, int pg, int ps);
}

이 경우 Mapper에 등록을 했기때문에 roleMapper 라는 이름으로  bean에 등록이 된다.

"예전부터 사용해오던 DAO 패턴을 같이 쓸 수 없을까?" 라는 궁금증이 생겨 반나절동안 해 보았는데... 안된다.

DAO 패턴도 어쨋든 Spring DI에 등록이 되어야 하는데 같은 클래스가 두개의 이름으로 등록이 되는 현상이 발생된다. 

No qualifying bean of type [com.openerp.dao.RoleDao] is defined: expected single matching bean but found 2: roleDao,roleMapper


이 같은 결론을 얻고 생각을 해보니.. 

DAO Pattern을 그냥 간소화 시켜서 사용하는게 Mapper 방식이네? 


reference)
myBatis DAO Pattern example : http://blog.idleworx.com/2011/09/mybatis-dao-example-code-tutorial.html 

'Framework > iBatis' 카테고리의 다른 글

MyBatis 3.2) Mapper 방식과 DAO Pattern은 같이 사용할 수 없다.  (0) 2013.07.19
프로시저 호출 시 주의 할 점..  (0) 2012.11.13
iBatis isEqual  (0) 2012.11.05
[3.0] forEach 사용  (0) 2010.07.15
[3.0] like 검색.  (0) 2010.07.09
[3.0] JDBC Type  (0) 2010.07.09

	
	   
	    	{	CALL LOMS_APP.PRC_CLEAN_ATTRES(?, ?, ?)	}

	

{ 와 CALL 사이에... tab (\t)가 들어 있는데 오류 난다... 헐...
	
	    
	    	{CALL PRC_CLEAN_ATTEND(?, ?, ?)}
	    
	








'Framework > iBatis' 카테고리의 다른 글

MyBatis 3.2) Mapper 방식과 DAO Pattern은 같이 사용할 수 없다.  (0) 2013.07.19
프로시저 호출 시 주의 할 점..  (0) 2012.11.13
iBatis isEqual  (0) 2012.11.05
[3.0] forEach 사용  (0) 2010.07.15
[3.0] like 검색.  (0) 2010.07.09
[3.0] JDBC Type  (0) 2010.07.09


  top_vacancy = 'Y',

'Framework > iBatis' 카테고리의 다른 글

MyBatis 3.2) Mapper 방식과 DAO Pattern은 같이 사용할 수 없다.  (0) 2013.07.19
프로시저 호출 시 주의 할 점..  (0) 2012.11.13
iBatis isEqual  (0) 2012.11.05
[3.0] forEach 사용  (0) 2010.07.15
[3.0] like 검색.  (0) 2010.07.09
[3.0] JDBC Type  (0) 2010.07.09
  • item : forEach내에서 각 아이템 이름으로 사용할 것.
  • index : index
  • collection="classNames"  // 배열명
  • open=""  // forEach 시작 전 ex: "(" forEach 시작전에 ( #{item}
  • separator=","  // forEach 1회시 구분 해줄 기호
  • close="" // forEach 종료 후 ex: ")" forEach 종료 후에 ( #{item}, #{item}, #{item} .... #{item[index]} )



  
	SUM(CASE WHEN R.CLASS_NAME = #{item}  THEN R.CNT ELSE 0 END) AS #{item}



'Framework > iBatis' 카테고리의 다른 글

프로시저 호출 시 주의 할 점..  (0) 2012.11.13
iBatis isEqual  (0) 2012.11.05
[3.0] forEach 사용  (0) 2010.07.15
[3.0] like 검색.  (0) 2010.07.09
[3.0] JDBC Type  (0) 2010.07.09
iBatis 3.0 Cache 문제 -  (0) 2010.07.08
- iBatis 3.0 에서 간단하게 like 검색 하는 법

CB.CUSTOMER_NAME like CONCAT('%', #{customerName:VARCHAR}, '%')

사용 예 )
<-select id="expired_search" parametertype="java.util.HashMap" resulttype="net.autobrain.domain.ExpiredSearchResult" flushcache="false" usecache="false">
SELECT CB.COUPON_BOOK_NO, CN.COUPON_NAME_SEQ, CN.COUPON_NAME
		    , CASE WHEN CB.CHARGE_TYPE = 'F' THEN '무상' ELSE '유상' END AS CHARGE_TYPE
		    , AM.AUTO_MODEL_SEQ
		    , AM.MODEL_NAME
		    , IFNULL(CB.CAR_NUMBER, '') AS CAR_NUMBER
		    , CB.VIN_NO
		    , CB.CUSTOMER_NAME
		    , CONCAT(CB.CUSTOMER_PHONE_1, '-', CB.CUSTOMER_PHONE_2, '-', CB.CUSTOMER_PHONE_3) AS CUSTOMER_PHONE
		    , CB.AUTO_SALES_USER_SEQ
		    , SU.USER_NAME
		    , CB.COUPON_EXPIRED_DATE
		FROM COUPON_BOOK CB
		    INNER JOIN COUPON CP ON CP.COUPON_BOOK_SEQ = CB.COUPON_BOOK_SEQ
		    INNER JOIN COUPON_BOOK_SETUP CBS ON CBS.COUPON_BOOK_SETUP_SEQ = CB.COUPON_BOOK_SETUP_SEQ
		    INNER JOIN COUPON_NAME CN ON CN.COUPON_NAME_SEQ = CBS.COUPON_NAME_SEQ
		    INNER JOIN COUPON_SETUP CS ON CBS.COUPON_BOOK_SETUP_SEQ = CS.COUPON_BOOK_SETUP_SEQ
		    INNER JOIN AUTO_MODELS AM ON CBS.AUTO_MODEL_SEQ = AM.AUTO_MODEL_SEQ
		    INNER JOIN AUTO_CLASSES AC ON AM.AUTO_CLASS_SEQ AND AC.AUTO_CLASS_SEQ
		    INNER JOIN SALES_USERS SU ON SU.SALES_USER_SEQ = CB.AUTO_SALES_USER_SEQ
		    INNER JOIN SHOWROOM_CODES SC ON SU.SHOWROOM_SEQ = SC.SHOWROOM_SEQ
		WHERE CB.REFUND_DATE IS NULL AND CB.DISABLE IS NULL
		AND CN.COUPON_NAME_SEQ = #{couponNameSeq}
		AND CB.CUSTOMER_NAME like CONCAT('%', #{customerName:VARCHAR}, '%')
	        AND DATE_FORMAT(#{beginCriterionDate}, '%Y-%m-%d') <= DATE_FORMAT(DATE_SUB(CB.COUPON_EXPIRED_DATE, INTERVAL #{gubun} DAY), '%Y-%m-%d')
		AND DATE_FORMAT(DATE_SUB(CB.COUPON_EXPIRED_DATE, INTERVAL #{gubun} DAY), '%Y-%m-%d') <= DATE_FORMAT(#{endCriterionDate}, '%Y-%m-%d')
		AND (TO_DAYS(CB.COUPON_EXPIRED_DATE) - TO_DAYS(CAST(#{criterionDate} AS DATE)) BETWEEN #{criterionDay1:NUMERIC} AND #{criterionDay2:NUMERIC})
		GROUP BY COUPON_BOOK_NO
    <-/select>

'Framework > iBatis' 카테고리의 다른 글

프로시저 호출 시 주의 할 점..  (0) 2012.11.13
iBatis isEqual  (0) 2012.11.05
[3.0] forEach 사용  (0) 2010.07.15
[3.0] like 검색.  (0) 2010.07.09
[3.0] JDBC Type  (0) 2010.07.09
iBatis 3.0 Cache 문제 -  (0) 2010.07.08

쿼리~~
AND (TO_DAYS(CB.COUPON_EXPIRED_DATE) - TO_DAYS(CAST(#{criterionDate} AS DATE)) BETWEEN #{criterionDay1:NUMERIC} AND #{criterionDay2:NUMERIC})


'Framework > iBatis' 카테고리의 다른 글

프로시저 호출 시 주의 할 점..  (0) 2012.11.13
iBatis isEqual  (0) 2012.11.05
[3.0] forEach 사용  (0) 2010.07.15
[3.0] like 검색.  (0) 2010.07.09
[3.0] JDBC Type  (0) 2010.07.09
iBatis 3.0 Cache 문제 -  (0) 2010.07.08

1. Query 실행 후 그 결과를 Map에 담아 리턴해 페이지에 출력.
2. 다른 곳에서 위 출력 결과에 영향을 주는 컬럼 값을 변경한다. 
3. 다시 1번을 수행하면 2번의 결과가 반영되지 않고 수정하기 전의 결과가 딱 나온다.

iBatis로그가 아닌 일반 로그에서는 호출은 되나 iBatis가 실행되진 않았다.

- 조건을 다르게 해서 실행 했을경우 sql을 실행하지만, 결과 값인 Map에는 수정하기 전의 정보가 들어있다.
- statementType="CALLABLE" flushCache="false" useCache="false" 모두 헛 수고

왜 그런지 문서좀 뒤져야겠다..

일단.. iBatis 로그부터 찍어야하고..

'Framework > iBatis' 카테고리의 다른 글

프로시저 호출 시 주의 할 점..  (0) 2012.11.13
iBatis isEqual  (0) 2012.11.05
[3.0] forEach 사용  (0) 2010.07.15
[3.0] like 검색.  (0) 2010.07.09
[3.0] JDBC Type  (0) 2010.07.09
iBatis 3.0 Cache 문제 -  (0) 2010.07.08

+ Recent posts