VO(value object) = DTO(Data Transfer Object) = beans



ibatis , Mybatis 모두 기본적으로 PreparedStatement사용하고 ResultSet이용해서 처리한다

PreparedStatement : 미리 SQL쿼리문을 미리 생성해놓고 바인드변수 사용 (장점: SQL인젝션공격 예방)

ibatis에서Mybatis로 발전했다.


ibatis에서는 개발자가 모든 SQL문을 XML로 작성하고 SQL문을 사용하는 DAO를 작성했음

Mybatis는 애노테이션 지원, 인터페이스와 애노테이션통해서 SQL문을 설정하고 처리하는 형태로 발전

Mybatis 에서의 SQL사용방법
▶XML만 사용해서 SQL문을 설정,DAO에서는 XML을 찾아서 실행하는 코드를 작성
-장점 : SQL문은 별도의 XML로 작성되기 때문에 SQL문의 수정이나 유지보수에 적합
-단점 : 개발시 코드의 양이 많아지고 , 복잡성이증가

▶애노테이션과 인터페이스만을 이용해서 SQL문을 설정
-장점 : 별도의 DAO없이도 개발이 가능하기 때문에 생산성이 증가
-단점 : SQL문을 애노테이션으로 작성하므로, 매번 수정이 일어나는경우 다시컴파일해야한다

▶인터페이스와 XML로 작성된 SQL문을활용
-장점 :간단한 sQL문은 애노테이션으로, 복잡한 SQL문은 XML로 처리하므로 상황에따라 유연하게처리
-단점 : 개발자에 따라 개발방식의 차이가 있을 수있기 때문에 , 유지보수가 중요한 프로젝트의 경우 부적합하다.

 

 

<insert id="insert" parameterType="MemberVO">
     #{userid}  ==>getUserid()
</insert>
<insert id="insert" parameterType="java.util.Map">
    #{userid}   ==>key값 userid
</insert>
도메인 어떠한 상품 나뉘어질수있는 서비스단위 명사,대명사
spring에서 interface사용하는이유 외부에서 변수값등을 변경하기위해서

'Java , sevlet' 카테고리의 다른 글

@RestController  (0) 2016.11.18
sql like 연산자 mybatis사용  (0) 2016.11.16
addFlashAttribute와 addAttribute 차이  (0) 2016.11.16
SQL Oracle 연결이 안될때  (1) 2016.11.09

+ Recent posts