DAO 계층 인터페이스 정의 다 중 입 참 (Mybatis)

3609 단어 mybatissql
            DAO            :

방법 1: 하나의 실체 클래스 에 참 조 를 넣 습 니 다.my batis 를 접촉 하면 일반적으로 도구 generator 를 접촉 합 니 다.대부분의 사람들 은 자동 으로 생 성 된 sql 인터페이스 에서 DAO 층 인터페이스의 정 의 를 이해한다.generator 가 자동 으로 생 성 하 는 코드 를 관찰 하면 여러 개의 입 참 (여러 개의 Primary Key) 상황 에서 이 를 하나의 실체 류 로 정의 하고 실체 류 를 입 참 으로 하 는 것 을 발견 할 수 있 습 니 다.클래스 Photo 를 예 로 들 어 Photo 표 필드 를 id, name, md5, url 로 정의 합 니 다.홈 키 는 id, name DROP TABLE IF EXISTS photo ;
CREATE TABLE
photo (
id int(11) NOT NULL,
md5 varchar(255) NOT NULL,
name varchar(255) NOT NULL,
url varchar(255) NOT NULL,
PRIMARY KEY (
id , name )
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
도구 generator 를 사용 하여 생 성 할 때 id 를 볼 수 있 습 니 다. name 은 PhotoKey 클래스 로 정의 합 니 다.
public class PHOTOKey {
    private Integer id;
    private String name;
//  set,get,toString  
}

DAO 계층 인터페이스의 조회 방법 selectby Primary Key 입 참 은 PhotoKey 클래스 입 니 다. PHOTO selectByPrimaryKey(PHOTOKey key); mapping 파일 의 실현 은?
 <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="com.cn21.yuntu.entity.db.file.PHOTOKey" >
    select 
    "Base_Column_List" />
    from photo
    where id = #{id,jdbcType=INTEGER}
      and name = #{name,jdbcType=VARCHAR}
  select>

방법 2: 맵 에 참 조 를 넣 고 맵 을 입 참 으로 사용 합 니 다.Photo selectByIdandName(Map map); mapping 파일 의 실현 은?
 

이 방법 은 사용 하면 오류 가 발생 하기 쉽 습 니 다. 맵 의 패 키 징 은 매개 변수의 의 미 를 한눈 에 알 아 보기 어렵 기 때문에 호출 할 때 도 변수 이름 의 정의 가 mapping. xml 파일 변수 이름과 일치 하지 않 는 상황 이 발생 하기 쉽 습 니 다. 예 를 들 어 대소 문자 나 이 밑줄 의 간단 한 오류 등 은 사용 하 는 것 을 권장 하지 않 습 니 다.
방법 3: @ Param 을 사용 하여 입 참 을 정의 합 니 다.인터페이스 에 인삼 을 넣 을 때 @ Param 으로 인삼 에 들 어 가 는 변수 이름 을 정의 합 니 다. 하나의 인삼 은 정의 하지 않 아 도 되 고 여러 개의 인삼 은 정 의 를 추가 해 야 합 니 다.
Photo selectByIdandName(@Param("Id") Integer Id, @Param("name") String name);

mapping 파일 의 구현 은?
 

이 방법 은 방법 과 비교 하면 일목요연 하 다.

좋은 웹페이지 즐겨찾기