sitelink1  
sitelink2  
sitelink3  
extra_vars6  
http://blog.empas.com/ahnyounghoe/13205448
8. Spring기반 iBatis DAO 작성
Spring MVC 어플리케이션 개발 <5> MVC 컨트롤러 작성 에서 생성했던 SqlMapArticleLinkDao 클래스가 SqlMapClientDaoSupport 클래스를 상속하도록 합니다. SqlMapClientDaoSupport 클래스는 Spring이 iBatis의 SqlMap을 활용하여 CRUD 작업을 쉽게 할 수 있게 해주는 클래스입니다.
package article.dao;
import java.util.List;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
import article.domain.ArticleLink;
 
public class SqlMapArticleLinkDao extends SqlMapClientDaoSupport implements ArticleLinkDao {

 public List<ArticleLink> getDefaultList() {
  return null;
 }
}
 
이렇게 되면 dao-context.xml의 설정도 아래와 같이 변경해야 합니다.
 <bean id="articleLinkDao"
  class="article.dao.SqlMapArticleLinkDao">
  <property name="sqlMapClient" ref="sqlMapClient" />
 </bean>
 
그리고 나서 DAO 클래스의 메소드를 작성해보죠.
public class SqlMapArticleLinkDao extends SqlMapClientDaoSupport implements ArticleLinkDao {

 public List<ArticleLink> getDefaultList() {
  return getSqlMapClientTemplate().queryForList("selectDefaultList", null);
 }
}
 
getSqlMapClientTemplate() 메소드는 관용 표현으로 이해하면 됩니다. 템플릿 객체를 얻어서 queryForList 메소드를 호출합니다. 다수의 결과가 반환되는 경우 이 메소드가 쓰입니다. 첫번째 인자는 SqlMap 파일에 있는 Sql 문장의 id 이고, 두번째는 sql 문에 인자로 제공할 객체입니다. 현재는 기본 목록이기 때문에 인자는 필요없어 null을 입력하죠.
 
이제 SqlMap 파일인 ArticleLink.xml을 보겠습니다. 먼저 반복해서 기입해야 하는 클래스 이름을 짧게 쓰기 위해서 typeAlias를 정의했습니다. 그리고, 클래스와 테이블이 1:1로 대응되지 않는 경우 resultMap을 활용해서 해결합니다.
 
ArticleLink 객체의 프로퍼티 중에 UserInfo 객체가 있는데 DB는 객체 타입을 지원할 수 없습니다. 그래서, UserInfo의 id 속성과 select의 결과 문에서 USERINFO_REF값을 대응시키겠다고 정의한 것이죠.
<sqlMap namespace="ArticleLink">
 <typeAlias alias="articleLink" type="article.domain.ArticleLink" />
 <resultMap id="article" class="articleLink">
  <result property="id" column="ID" />
  <result property="language" column="LANG" />
  <result property="title" column="TITLE" />
  <result property="link" column="LINK" />
  <result property="regiDate" column="REGI_DATE" />
  <result property="description" column="DESC" />
  <result property="registrator.id" column="USERINFO_REF" />
 </resultMap>

 <!-- SELECT Statements -->
 <select id="selectDefaultList" resultMap="article">
  select ID, LANG, TITLE, LINK, REGI_DATE, DESC, USERINFO_REF
  FROM T_ARTICLE_LINK
 </select>
</sqlMap>
 
이제 화면 코딩을 제외하고는 간단한 목록보기가 구현된 것입니다.

번호 제목 글쓴이 날짜 조회 수
공지 (확인전) [2021.03.12] Eclipse에서 Spring Boot로 JSP사용하기(Gradle) 황제낙엽 2023.12.23 0
공지 [작성중/인프런] 스프링부트 시큐리티 & JWT 강의 황제낙엽 2023.12.20 6
43 스프링의 구조별 기능 설명 황제낙엽 2007.06.26 42
42 실습 STEP2 - 기초편 (데이터 베이스 접속) file 황제낙엽 2007.06.21 21
41 java.util.MissingResourceException: Can't find bundle for base name xxx, locale ko_KR 황제낙엽 2007.06.21 2362
40 자바지기 스프링 프레임웍 아티클 황제낙엽 2007.06.04 54
39 AOP(Aspect Oriented Programming) 황제낙엽 2007.06.03 39
38 Spring MVC 어플리케이션 개발 <12> 간단한 조회 구현 방안 비교 황제낙엽 2007.05.27 31
37 Spring MVC 어플리케이션 개발 <11> 간단한 조회 구현 방안 비교 황제낙엽 2007.05.27 164
36 Spring MVC 어플리케이션 개발 <10> 도메인 객체 수정시 변경 사항 황제낙엽 2007.05.27 10
35 Spring MVC 어플리케이션 개발 <9> JSP 화면 작성 황제낙엽 2007.05.27 28
» Spring MVC 어플리케이션 개발 <8> Spring기반 iBatis DAO 작성 황제낙엽 2007.05.27 51
33 Spring MVC 어플리케이션 개발 <7> Spring과 iBatis 연동을 위한 준비 황제낙엽 2007.05.26 17
32 Spring MVC 어플리케이션 개발 <5> MVC 컨트롤러 작성 황제낙엽 2007.05.26 22
31 Spring MVC 어플리케이션 개발 <4> 화면 요구 작성 황제낙엽 2007.05.26 19
30 Spring MVC 어플리케이션 개발 <3> Web Application Context 파일 작성 황제낙엽 2007.05.26 125
29 Spring MVC 어플리케이션 개발 <2> Spring MVC 구동을 위한 web.xml 작성 황제낙엽 2007.05.26 32
28 Spring MVC 어플리케이션 개발 <1> 프로젝트 디렉토리 생성 황제낙엽 2007.05.26 51
27 Struts에서 Spring으로의 이주 가이드 - Spring (java/j2ee Application Framework) 황제낙엽 2006.02.27 29
26 실습 STEP1 - 기초편 (Hello Spring 출력) file 황제낙엽 2007.04.27 18
25 Bean 생명주기 관리 황제낙엽 2007.03.23 24
24 Spring프레임워크 소개문서 (3) 황제낙엽 2007.03.22 35