my batis 의 동적 sql if test 사용 설명
<select id="getMaxDepartId" parameterType="java.lang.String" resultType="java.lang.String">
SELECT MAX(DEPART_ID) FROM T_P_DEPART
<where>
<if test="_parameter!=null and _parameter!=''">
AND DEPART_PID = #{departId,jdbcType=VARCHAR}
</if>
<if test="_parameter==null or _parameter==''">
AND DEPART_PID IS NULL
</if>
</where>
</select>
매개 변 수 는 pojo,if test 에서 이 매개 변수 코드 를 읽 습 니 다.
<select id="findShopByName" parameterType="ShopVo" resultType="ShopCustomer">
select * from shop
<where>
<if test="shopCustomer.shopname!=null and shopCustomer.shopname!=''">
shop.shopname like '%${shopCustomer.shopname}%'
</if>
<if test="shopCustomer.shopname==null or shopCustomer.shopname==''">
AND shop.shopname is null
</if>
</where>
</select>
보충:my batis 에서 if test 의 조건 에 대해 어떻게 씁 니까?1.my batis 의 if test 쓰기
1.1 공식 문서 에 if 에 대해 이렇게 쓰 여 있 습 니 다.
<if test="title != null">
AND title like #{title}
</if>
공식 문서 참조:실제 항목 에 서 는 이러한 경우 가 있 습 니 다.페이지 의 title 필드 에 어떤 값 을 입력 하여 조회 하고 입력 상자 의 값 을 수 동 으로 삭제 한 다음 에 다시 조회 한 결과 가 정확 하지 않 습 니 다.그 이 유 는 title 에 빈 문자열 을 입력 해 야 하기 때 문 입 니 다."이렇게 하면 my batis 설정 파일 에서 빈 문자열 로 조회 하여 오류 결과 가 발생 합 니 다.
1.2 건의 작법
<if test="title != null and title != ''" >
AND title like #{title}
</if>
2.my batis 를 사용 하여 변경 할 때 필드 를 비 웁 니 다.if 에 들 어 오 는 인자 가 비어 있 으 면 if 의 문 구 를 실행 하지 않 습 니 다.
해결 방법:
<update id="updateObject" parameterType="*.*.Object" >
update table
<set>
<if test="Object.fullName == null or Object.fullName ==''">
full_name = null,
</if>
<if test="Object.fullName != null and Object.fullName !=''">
full_name = #{companyOrg.fullName},
</if>
<if test="Object.level == null or Object.level ==''">
level = null,
</if>
<if test="Object.level == 0 ">
level = null,
</if>
<if test="Object.level != null and Object.level !='' and Object.level != 0 ">
level = #{companyOrg.level},
</if>
</set>
where 1=1 and id =#{companyOrg.id}
</update>
이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.만약 잘못 이 있 거나 완전히 고려 하지 않 은 부분 이 있다 면 아낌없이 가르침 을 주시 기 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.