Artigos

Tire duas dúvidas com o especialista no assunto Dr. Daphnis Citti de Lauro

mybatis 동적 쿼리 예제

MyBatis는 매핑된 모든 SQL 문 내에서 사용할 수 있는 강력한 동적 SQL 언어를 사용합니다. 다음은 MyBatis에서 제공하는 OGNL 기반 동적 SQL 표현식입니다. 동적 SQL 요소는 JSTL 또는 유사한 XML 기반 텍스트 프로세서를 사용한 모든 사람에게 익숙해야 합니다. MyBatis의 이전 버전에서는 알고 이해해야 할 요소가 많이 있었습니다. MyBatis 3는 이에 크게 개선되었으며, 이제 작업할 요소의 절반 미만이 있습니다. MyBatis는 강력한 OGNL 기반 식을 사용하여 대부분의 다른 요소를 제거합니다. 차이점은 이는 SQL 문 자체에 대한 근본적인 변화이며, 이는 단순히 매개 변수 값을 설정하는 것보다 훨씬 더 심각하다는 것입니다. 동적 SQL 요소에서 실수를 하면 보안, 성능 및 안정성 위험이 발생할 수 있습니다. 간단한 동적 SQL 요소가 적절하게 사용되고 있는지 확인하기 위해 많은 중복 검사를 수행하십시오. 또한 데이터베이스 세부 사항이 비즈니스 개체 모델을 잠식할 가능성이 있으므로 디자인을 염두에 두어야 합니다. 예를 들어 절에 의한 주문을 위한 열 이름이 비즈니스 개체의 속성또는 서버 페이지의 필드 값으로 끝나는 것을 원하지 않을 수 있습니다.

MyBatis Dynamic SQL로 작업하려면 다음 단계가 필요합니다. 위에서 설명한 전체 동적 매핑된 문 API의 강력한 힘에도 불구하고 동적이어야 하는 간단하고 작은 SQL 조각이 필요한 경우도 있습니다. 이를 위해 SQL 문과 문에는 절, 동적 선택 열 또는 SQL 문의 거의 모든 부분에서 동적 순서를 구현하는 데 도움이 되는 간단한 동적 SQL 요소가 포함될 수 있습니다. 개념은 인라인 매개 변수 맵과 비슷하게 작동하지만 약간 다른 구문을 사용합니다. 다음 예제를 고려해 보십시오: Example3.56.MyBatis의 가장 강력한 기능 중 하나는 항상 동적 SQL 기능중 하나이며, 두 가지 가능한 결과와 함께 간단한 동적 선택 교반입니다. JDBC 또는 이와 유사한 프레임워크에 대한 경험이 있는 경우 SQL 문자열을 조건부로 연결하여 공백을 잊어버리거나 열 목록 끝에 쉼표를 생략하는 것이 얼마나 고통스러운지 이해할 수 있습니다. 동적 SQL은 처리하기가 매우 고통스러울 수 있습니다. example3.59.정렬 순서를 변경하는 동적 요소 Example3.58.조건부 태그가 있는 동적 문 만들기 이 파일에는 Select 쿼리의 결과를 매핑하기 위해 Student라는 결과 맵이 포함되어 있습니다. 데이터베이스에서 동적 SQL SELECT 쿼리를 실행하기 위해 mybatisRead.java에서 사용되는 “id”를 정의합니다. 동적 SQL은 MyBatis의 매우 강력한 기능입니다. 프로그래머는 시나리오를 기반으로 쿼리를 동적으로 빌드할 수 있습니다.

예를 들어 MyBatis의 학생 이름에 따라 Student 데이터 베이스를 검색하려면 동적 SQL을 사용하여 쿼리를 작성해야 합니다. 또는 Id 매개 변수가 0 이하인 경우 문은 다음과 같이 표시됩니다. 이 라이브러리는 동적 SQL 문을 생성하기 위한 프레임워크입니다. MyBatis3 및 Spring JDBC 템플릿에 대한 추가 지원을 통해 형식 안전 SQL 템플릿 라이브러리로 생각하십시오.