my batis 의@param 을 왜 사용 하 는 지 말씀 드 리 겠 습 니 다.
우리 먼저 잘못 을 보고 하 자.
오 류 는 간단 합 니 다.인자 start 를 찾 지 못 했 습 니 다.
저 는 API 인 터 페 이 스 를 실현 할 때 문 제 를 발 견 했 습 니 다.@Param 탭 을 사용 하지 않 을 때 my batis 는 어떤 매개 변수 이름 이 무엇 인지 모 릅 니 다.비록 제 가 정 의 했 지만(long start,long end)그것 은 아직 모 릅 니 다.이 인터페이스 에서 저 는 전단 에서 들 려 오 는 매개 변수 에 따라 지정 한 범위 의 데 이 터 를 찾 고 싶 습 니 다.예 를 들 어 두 번 째 페이지 의 데 이 터 를 검색 하고 싶 습 니 다.한 페이지 에 20 개가 있다 고 가정 하면 검색 범 위 는 21-40 입 니 다.그래서 인터페이스 에 있 는 getTypeListByRange 를 호출 하여 mapper 에 대응 하 는 SQL 문 구 를 찾 습 니 다.
public interface TypeDao {
Type getTypeByid(long id);
List<Type> getTypeListAll();
List<Type> getTypeListByRange(long start,long end);
}
해석@Paramorg.apache.ibatis.annotations.Param 맵 기 방법 에 여러 개의 인자 가 필요 할 때 이 주 해 는 맵 기 방법 중의 모든 매개 변수 에 이름 을 짓 는 데 사용 할 수 있 습 니 다.그렇지 않 으 면 다 중 매개 변 수 는 순서 위치 와 SQL 문장의 표현 식 으로 매 핑 됩 니 다.이것 은 기본 값 입 니 다.
문법 요구:@Param("id")을 사용 하면 SQL 의 매개 변 수 는\#{id}로 명명 되 어야 합 니 다.
쓰다
Dao 층
import org.apache.ibatis.annotations.Param;
import com.caeser.upmovie.entity.Type;
public interface TypeDao {
Type getTypeByid(long id);
List<Type> getTypeListAll();
List<Type> getTypeListByRange(@Param("start")long start,@Param("end")long end);
}
Mapper
<select id="getTypeListByRange" resultType="com.caeser.upmovie.entity.Type">
SELECT
ID,
NAME,
CREATE_TIME,
UPDATE_TIME
FROM
upm_type
LIMIT
#{start},#{end};
</select>
유닛 테스트
public class TypeTest extends BaseTest{
@Autowired
private TypeDao typeDao;
@Test
public void testDao(){
List<Type> typeList1=typeDao.getTypeListByRange(1, 4);
for(int i=0;i<typeList1.size();i++){
System.out.println(typeList1.get(i).getName());
}
}
}
결실총결산
Dao 층 이 매개 변 수 를 여러 매개 변수 로 전달 할 때 규범 을 위해@Param 을 사용 하여 매개 변수 이름 을 지어 야 합 니 다.여기 서 주의해 야 할 것 은 my batis 의 param 을 사용 하여 이름 을 짓 는 것 입 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
MySQL/마이바티스 | 동적 쿼리 사용A라는 서비스에 해당하는 테이블을 조인하고 조회하는 데 사용됩니다. 나중에 공통화를 위해 B 및 C 서비스도 추가됩니다. A, B, C 서비스는 모두 단일 쿼리에서 작동할 수 있도록 공통화되어야 합니다. 테이블에 각...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.