1. Mybatis Dynamic SQL이란 무엇입니까?
역동적 인 것을 볼 때, 우리는 이것이 변경 될 수있는 SQL 문이라고 생각해야합니다.
Mybatis의 동적 SQL은 Ognl 표현식을 기반으로하며 SQL 문의 특정 논리를 쉽게 구현할 수 있습니다.
2. MyBatis Dynamic SQL을 사용하기 전 준비
에이. 데이터베이스 테이블
비. 수업을 만듭니다
3. MyBatis Dynamic SQL을 사용하면 먼저 일부 속성 값을 알아야합니다.
1. 삽입
SelectKey : SQL 명령문 전후에 실행 된 SQL 문
KeyColumn : 해당 필드 이름 또는 별칭
KeyProperty : 엔티티 클래스에 해당하는 속성 이름 또는지도 키 값
주문 : 실행 명령문 전후에 실행됩니다
결과 유형 : 반환 결과 유형
첫 번째 방법 : 가장 쉬운 동적 SQL 삽입
코스 값 (seq_course.nextVal,#{coursecode},#{coursename})에 삽입하십시오시험
테스트 결과
두 번째 방법 : 많은 필드를 삽입하고 싶지 않고 CourseName 필드를 삽입하고 싶지 않다면 첫 번째 방법은 불가능합니다.
코스에 삽입 (id, coursecode, coursename) 값 (seq_course.nextVal,#{coursecode},#{coursename})테스트 및 결과
이것으로부터 우리는 Coursecode 필드를 삽입하지 않을 때이 방법을 달성 할 수 있음을 알 수 있습니다.
이제 제목이 다시 여기에 있습니다. 마지막 필드를 비어 있거나 두 필드를 비어두고 싶다면 어떻게됩니까?
마지막 필드는 비어 있습니다
콘솔의 첫 번째 물음표 뒤에 쉼표가있는 것 같습니다.
두 필드 모두 비워 지십시오
여전히 쉼표가 있습니다
위의 상황의 이유는 필드를 삽입하고 싶지 않을 때 쉼표를 제거하지 않았기 때문입니다. 이제 세 번째 방법을 소개합니다.
세 번째 방법은 초과 쉼표를 제거하는 것입니다
이 방법은 트림을 소개해야합니다
트림에는 몇 가지 속성이 있습니다
접두사 : 접두사를 추가하십시오
Prefixoverrides : 접두사를 대체하십시오
접미사 : 접미사를 추가하십시오
접미사 : 접미사를 대체하십시오
id, coursecode, coursenameseq_course.nextVal,#{coursecode},#{coursename}봐, 문제가 해결되었습니다
프로젝트를 수행 할 때는 종종 데이터베이스에 데이터를 삽입합니다. 때로는 여러 조각을 동시에 삽입하고 싶습니다. 그렇다면 mybatis를 사용하여 여러 데이터를 어떻게 삽입해야합니까?
여기서 몇 가지 문제를 해결해야합니다
1. 테이블 구조를 어떻게 복사합니까?
테이블 코스 02를 선택하여 * Course에서 선택하십시오
이 진술은 매우 친숙합니까? 예, Course02 테이블은 코스 테이블의 테이블 구조를 복사 할뿐만 아니라 코스 테이블의 내용을 복사합니다.
2. 코스 테이블 내용 대신 코스 테이블 구조 만 어떻게 복사합니까?
테이블 코스 03을 선택 *에서 1! = 1으로 선택하십시오.
3. 삽입 할 때 이와 동일합니까?
코스에 삽입 03 코스에서 *를 선택하십시오;
대답은 동일합니다
4. 여러 문장을 삽입하는 방법
코스에 삽입 '6', 'yc06', '데이터 구조 06', 듀얼 Unionselect '7', 'YC07', '데이터 구조 07', 듀얼 Unionselect '8', 'YC08', '데이터 구조 08', '8', 'yc08', '데이터 구조 08', '데이터 구조 08', '데이터 구조 08', '데이터 구조 08', '데이터 구조 08'
SQL 문을 사용할 수 있으므로 구성 파일에 삽입 할 수 있습니다.
CourseSelect#{courses.id},#{courses.coursecode},#{courses.coursename}에 삽입하십시오2. 수정
1. 트림을 사용하십시오. 앞에서 언급했듯이 Trim을 사용하여 속성 SuffixOverrides로 인해 defix를 사용할 수 있습니다.
코스 setCourSecode =#{coursecode}, coursename =#{coursename} 여기서 id =#{id}2. 명령문에서 세트를 대체 할 수있는 세트를 사용하고 접미사를 제거하십시오.
CourseCoursecode =#{CourseCode}, coursename =#{coursename} 여기서 id =#{id}3. 수정할 때 선택적으로 변경됩니다. 때때로 우리는 수정없이 값과 일치하도록 값을 수정하고 싶지 않습니다.
선택은 다중 if와 동일합니다
첫 번째는 IF와 동일하고 두 번째는 IF와 동일합니다.
그렇지 않으면 다른 것과 같습니다
CourseCourSecode =#{coursecode}, coursecode = coursecode, coursename =#{coursename}, coursename = coursename, 여기서 id =#{id}위는 Mybatis Dynamic SQL의 전체 내용입니다. 나는 그것이 모두에게 도움이되기를 바랍니다!