레퍼런스 NamedParameterJdbcDaoSupport 몇가지 장점

황제낙엽 2007.11.27 21:20 조회 수 : 1749 추천:129

http://www.javaservice.net/~java/bbs/read.cgi?m=resource&b=consult&c=r_p&n=1196132928&p=1&s=t#1196132928비교 요약이 아니므로, IBatis랑 중복되는 장점일 수도 있으며
Spring framework NamedParam... 의 기본제공 API가 아니고 이를 base로 하여
더욱 확장해야 하는 부분일 수 있습니다.


1. 테이블 맵핑 XML 불필요
   Ibatis처럼 특정 테이블 정보에 대한 XML 맵핑이 불필요.
   데이터소스로 부터 테이블 레이아웃 자동 파싱

2. 파라메터 및 리절트 데이터 VO 맵핑 불필요
   < select id="getOrdersByUsername" resultClass="order" parameterClass="string" >
    처럼 Statement의 타입 및 parameterClass/resultClass에 대한 맵핑 불필요
    코드내 리플랙션을 통한 자동 바인딩 및 결과값 구성

2. 멀티 데이터소스 XA 트랜잭션 지원
   분산 데이터베이스 환경에 대한 지원으로 여러개의 DataSource 및 원격지의
   데이터 소스 사용가능
   CODE)
  
   JDBCMapProcessor p = JDBCProcessorFactory.getJDBCMapProcessor();
   p.setDataSourceName("OracleXADS");
   ..
   p2.setDataSourceName("OracleXADS22");
   ...
  
 
3. CRUD 기본 스테이트먼트 자동화
   FindByALL
   FindByPrimaryKey
   FindCountByPramaryKey
   FindCountAll
   Delete
   Insert
   Update
   ....
   등 복잡한 Join이 포함되지 않은 SQL은 작성이 필요없습니다.
   CODE)
     //테이블명과 모드로 자동으로 쿼리 실행
      JDBCMapProcessor p = JDBCProcessorFactory.getJDBCMapProcessor();
      p.setTableNames("MY_TABLE");
      p.setStatus(UPDATE);  //---FindByALL/FindByPrimaryKey/.....
      p.setDataMap(dataMaps);
      p.execute();


4. 캐쉬 및 SQL 로깅
   환경설정을 통한 스테이트먼트 캐슁 및 실행된 SQL 로깅, 특정 시간 초과 SQL에 대한 성능 경고

5. DEV/PROD 모드 전환을 통한 XML 리로딩
   개발환경시 서버 재시작은 없는 XML적용

6. 관리 콘솔을 통한 환경설정/SQL등록
   에티터를 통한 SQL등록/관리의 불편함 대신 웹콘솔로 SQL등록/관리
   (이부분은 이클립스 플러그인으로 됬음 좋겠음)

6. JDBC 하드코딩 수준의 성능

7. Standard Dynamic SQL구사로 프레임워크에 맞춰진 SQL 문법작성 불필요.


주저리주저리 적어서 정신이 없네요.^^;
가장 큰 장점으로 치면,

1.XML 맵핑의 최소화
2.프로젝트내 70%이상(?) 기본 SQL작성 불필요

번호 제목 글쓴이 날짜 조회 수
공지 [작성중/인프런] 스프링부트 시큐리티 & JWT 강의 황제낙엽 2023.12.20 5083
84 @ConfigurationProperties 사용하기 황제낙엽 2025.10.23 1617
83 Spring Boot 에서 서버 로직의 역할별 애노테이션 구분 황제낙엽 2025.10.13 1411
82 (확인전) [2021.03.12] Eclipse에서 Spring Boot로 JSP사용하기(Gradle) file 황제낙엽 2023.12.23 2817
81 Spring Boot PetClinic Sample Application 황제낙엽 2023.12.21 2575
80 Eclipse, Spring Boot, Gradle, SVN 레거시(2019) 시스템 유지보수 환경 구축 file 황제낙엽 2023.11.14 1732
79 [시리즈 강좌] 스프링부트로 웹서비스 구축하기 황제낙엽 2023.07.13 1691
78 Spring Boot에서의 RESTful API 모듈 file 황제낙엽 2020.04.16 1896
77 [POST] Spring MVC 구조 분석 황제낙엽 2024.01.17 2053
76 Spring Framework 에서 사용하는 annotation 황제낙엽 2024.01.17 2093
75 Spring MVC configuration file 황제낙엽 2024.01.17 2041
74 [스프링 시큐리티 OAuth2] 강의 자료와 학습용 소스 file 황제낙엽 2024.01.15 1595
73 OAuth 2.0 Resource Server - Spring Security OAuth2.0 황제낙엽 2023.12.27 2016
72 Spring, JSP, Gradle, Eclipse 환경 구축[2] - 샘플 프로젝트 file 황제낙엽 2023.12.24 1922
71 Spring, JSP, Gradle, Eclipse 환경 구축[1] - 레퍼런스 조사 황제낙엽 2023.12.23 2056
70 spring-security-samples 황제낙엽 2023.12.22 1800
69 [Bard] Spring 과 Spring Boot의 차이 file 황제낙엽 2023.12.21 1803
68 Spring 과 Spring Boot의 차이 file 황제낙엽 2020.05.26 2308
67 Spring Security OAuth2.0 파헤치기 황제낙엽 2019.09.05 2079
66 Spring Security OAuth2구현 file 황제낙엽 2019.09.05 2208
65 Spring Security OAuth 황제낙엽 2019.09.05 2442