my batis 의 동적 sql if test 사용 설명

3026 단어 mybatissqliftest
매개 변 수 는 String 이 고 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>
이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.만약 잘못 이 있 거나 완전히 고려 하지 않 은 부분 이 있다 면 아낌없이 가르침 을 주시 기 바 랍 니 다.

좋은 웹페이지 즐겨찾기