반드시 root-context.xml 에 mybatis 어노테이션으로 할 빈을 설정해 준다.
<!-- mybatis mapper interface bean 을 자동으로 검색하여 생성함 -->
<mybatis-spring:scan base-package="com.macaronics.www.user.model.dao.memo"/>
중요한것은 context:component-scan 에서 서로 충돌을 나지 않게 패키지를 따로 지정해 줘야한다.
<!-- 스프링 빈을 태그로 등록하지 않고 자동으로 검색(auto scan) -->
<context:component-scan base-package="com.macaronics.www" />
인터페이스 DAO 하나로 mapper 까지 해결 된다.
파라미터가 두개이상인경우 서비스에서 Map 으로 전달 하거나
어노테이션으로 설정할 수도 있다.
@Select(list)
public List<UserMemoVO> list2(@Param("userid") String usrid, @Param("start") Integer start, @Param("end") Integer end);
//interface + 구현 클래스 + mapper
public interface UserMemoDAO {
String list =" select * from ( select rownum as rn, A.* from ( select rownum , userid, EMAIL, friendName, idx, memo, phone, post_date from tbl_memo "
+ " where userid=#{userid} order by idx desc ) A ) where rn BETWEEN #{start} and #{end} ";
String getMemo=" select * from tbl_memo where idx=#{idx} order by idx desc ";
String insertMemo= " INSERT INTO TBL_MEMO (IDX, USERID, FRIENDNAME, MEMO, EMAIL, PHONE ) "
+ " VALUES (seq_memo.nextval, #{userid}, #{friendName}, #{memo}, #{email}, #{phone} ) ";
String memoUpdate=" update TBL_MEMO SET EMAIL=#{email}, FRIENDNAME=#{friendName}, MEMO=#{memo}, PHONE=#{phone} "
+ " where idx=#{idx} ";
String memoDelete= " delete from TBL_MEMO WHERE IDX =#{idx} ";
String countMemo=" select count(*) FROM tbl_memo where userid=#{userid} ";
/*
@Results({
@Result(property = "idx", column = "idx"),
@Result(property = "memo", column = "memo"),
@Result(property = "writer", column = "writer"),
@Result(property = "post_date", column = "post_date")
})*/
@Select(list)
public List<UserMemoVO> list(Map map);
//or @Select(list)
@Select(list)
public List<UserMemoVO> list2(@Param("userid") String usrid, @Param("start") Integer start, @Param("end") Integer end);
@Select(getMemo)
public UserMemoVO getMemo(Integer idx);
@Insert(insertMemo)
public void insertMemo(UserMemoVO vo);
@Update( memoUpdate )
public void memoUpdate(UserMemoVO vo);
@Delete (memoDelete)
public void memoDelete(Integer idx);
@Select(countMemo )
public int countMemo(String userid);
}
댓글 ( 4)
댓글 남기기