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 |