DAO 계층 인터페이스 정의 다 중 입 참 (Mybatis)
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 파일 의 구현 은?
이 방법 은 방법 과 비교 하면 일목요연 하 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Mybatis가 키 id를 삽입하는 방법을 되돌려줍니다.mapper의 xml 파일에useGeneratedKeys 구성 KeyProperty를 사용하여 Id로 돌아가면 됩니다. PS: Mybatis의 insert에서 키 ID를 반환하는 방법 1、XyzMapper.xml 또...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.