my batis 에서 xml 의 trim 속성 설명

3607 단어 mybatisxmltrim 속성
my batis 의 xml 에 trim 라벨 은 네 개의 속성 이 있 습 니 다.
1.4.567914 접두사 추가 내용
2.4.567914.접미사 가 추 가 된 내용
3prefix 접두사 가 덮어 야 할 내용 은 보통 첫 번 째 판단 조건 앞의 불필요 한 구조 이다.예 를 들 어 첫 번 째 판단 조건 앞 에'and'가 많아 졌 다.
4suffix 접 두 사 는 덮어 써 야 할 내용 입 니 다.보통 마지막 데이터 의 뒤에 있 는 기호 입 니 다.예 를 들 어 set 값 일 때 마지막 값 뒤에 쉼표 가 하나 더 있 습 니 다.
몇 가지 예 를 들다.
1.사용자 의 이름과 연령 에 따라 사용 자 를 조회 하고 가치 가 있 으 면 그 조건 에 따른다(목적 은 몇 가지 속성 용법 을 설명 하 는 것 이 고 예 는 실제 장면 에 적용 되 지 않 을 수 있다)

select * from User where name='zhangsan' and age='20';
<select id='queryUser'>
        select * from User
        <trim prefix='where' prefixOverrides='and'>
            <if test="name != null and name != ''">
                name = #{name}
            </if>
            <if test="age !=null and age !=''">
                and age = #{age}
            </if>
        </trim>
<select>
위의 예 는 매우 일반적인 쓰기 입 니 다.첫 번 째 조건 앞 에 어떠한 기호 도 없고 두 번 째 조건 은 and 를 더 해 야 합 니 다.그렇지 않 으 면 sql 문 구 는 잘못 보 고 될 것 입 니 다.이상 적 인 상 태 는 첫 번 째 와 두 번 째 모두 값 이 있 지만 판단 한 이상 설명 이 값 이 없 을 수도 있 습 니 다.첫 번 째 name 이 값 이 없 을 때 sql 문 구 는...
select*from User where and age=',이 sql 구문 문법 에 문제 가 있 음 이 분명 합 니 다.여기 서 태그 속성 prefix Overrides 가 작용 합 니 다.접두사 where 가 첫 번 째 and 를 덮어 씁 니 다.덮어 쓴 다음:select*from User where age=';
접두사 에 where 를 붙 이면 말 하지 않 습 니 다.속성 prefix='where'때문에 이 where 도태그 밖 에 쓸 수 있 습 니 다.그러면 속성 prefix 를 사용 하지 않 아 도 됩 니 다.
이제 더 편리 한 탭 이 생 겼 습 니 다.바로입 니 다.이 탭 의 효과 가 같 으 면 첫 번 째 조건 에 맞 는 기 호 를 무시 합 니 다.

select * from User 
<where>
             <if test="name != null and name != ''">
                name = #{name}
            </if>
            <if test="age !=null and age !=''">
                and age = #{age}
            </if>
</where>
첫 번 째 name 값 이 null 이면 age 앞의 and 는 무 시 됩 니 다.
그리고 다른 두 속성,suffix 와 suffix Overrides.
예 를 들 어 사용자 의 정 보 를 업데이트 하고 값 이 있 는 필드 를 업데이트 합 니 다.sql 문 구 는 다음 과 같 습 니 다.

<update id="updateUser">
    update User
    <trim prefix="set" suffixOverrides="," suffix="where id='1'">
        <if test="name != null and name != ''">
            name=#{name},
        </if>
        <if test="age != null and age !=''">
            age=#{age},
        </if>
    </trim>
</update>
이 예 에서 마지막 조건 의 쉼표","접미사 로 덮어 씁 니 다.이 예 에서 접 두 사 는 where id='1'입 니 다.
OK,순 전 히 네 가지 속성 을 어떻게 사용 하 는 지 설명 하기 위해 서 입 니 다.구체 적 인 안의 값 은 구체 적 인 수요 에 따라 정 해 집 니 다.하 나 를 들 면 열 을 안다~
trim 태그 사용 장면
trim 탭 을 사용 하여 불필요 한 쉼표 를 제거 합 니 다.
빨간색 상자 안의 조건 이 일치 하지 않 으 면 sql 문 구 는 다음 과 같 습 니 다.

INSERT INTO role(role_name,) VALUES(roleName,)
삽입 에 실패 합 니 다.
다음 과 같이 수정 합 니 다.

그 중에서 가장 중요 한 속성 은?

suffixOverrides=","
sql 문장의 끝 에 남 은 쉼표 를 제거 하 는 것 을 표시 합 니 다.
이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.

좋은 웹페이지 즐겨찾기