Publié le

mybatis 게시판 예제

환경 매개 변수를 사용하는 빌드 메서드를 호출하면 MyBatis는 해당 환경에 대한 구성을 사용합니다. 물론 잘못된 환경을 지정하면 오류가 발생합니다. 환경 매개 변수를 사용하지 않는 빌드 메서드 중 하나를 호출하면 기본 환경이 사용됩니다(위의 예에서 기본=”개발”로 지정). 위의 예제에서는 블로그의 “작성자” 연결 에서 “authorResult” result에 대리하여 Author 인스턴스를 로드할 수 있습니다. 연결 요소는 “has-one” 형식 관계를 다룹니다. 예를 들어 이 예제에서는 블로그에 작성자가 하나 있습니다. 연결 매핑은 대부분 다른 결과와 마찬가지로 작동합니다. 대상 속성, 속성의 javaType(MyBatis가 대부분의 시간을 알아낼 수 있음), 필요한 경우 jdbcType 및 결과 값의 검색을 재정의하려는 경우 typeHandler를 지정합니다. 위의 예제에서는 매우 간단한 명명된 매개 변수 매핑을 보여 줍니다. parameterTypein으로 설정되므로 매개 변수의 이름을 지정할 수 있습니다. 정수 및 문자열과 같은 기본 또는 단순 데이터 형식에는 관련 속성이 없으므로 매개 변수의 전체 값이 완전히 바꿉습니다. 그러나 복잡한 개체를 전달하는 경우 동작이 약간 다릅니다. 예를 들어 맵퍼는 매핑된 문에 바인딩하기 위해 만든 인터페이스입니다.

매퍼 인터페이스의 인스턴스는 SqlSession에서 획득됩니다. 따라서 기술적으로 가장 광범위한 매퍼 인스턴스의 범위는 요청된 SqlSession과 동일합니다. 그러나 매퍼 인스턴스에 가장 적합한 범위는 메서드 범위입니다. 즉, 사용 되는 메서드 내에서 요청 하 고 삭제 해야 합니다. 명시적으로 닫을 필요는 없습니다. SqlSession과 마찬가지로 요청 전체에서 리소스를 유지하는 것은 문제가 되지 않지만 이 수준에서 너무 많은 리소스를 관리하면 빠르게 문제가 될 수 있습니다. 간단하게 유지하고 매퍼를 메서드 범위에 유지하십시오. 다음 예제에서는 이 방법을 보여 줍니다. 데이터베이스IdProvider가 구성된 경우 동적 코드에 대해 “_databaseId” 변수를 사용할 수 있으므로 데이터베이스 공급업체에 따라 다른 문을 작성할 수 있습니다. 다음 예제를 살펴보십시오: SQL 조각은 다른 문에 포함될 수 있습니다. 당신은 이미 위의 중첩 된 연결의 매우 복잡한 예를 보았다.

다음은 작동 방식을 보여 주는 훨씬 간단한 예제입니다. 별도의 문을 실행하는 대신 블로그 및 Author 테이블을 함께 조인하겠습니다: 문자열 대체는 sql 문의 메타데이터(예: 테이블 이름 또는 열 이름)가 동적일 때 매우 유용할 수 있습니다(예: 테이블에서 선택하려는 경우). 이 예제에서는 사용자 지정 캐시 구현을 사용하는 방법을 보여 줍니다. 형식 특성에 지정된 클래스는 org.apache.ibatis.cache.cache 인터페이스를 구현하고 문자열 ID를 인수로 가져옵니다.