쿼리 결과의 컬럼 이름이 Java 객체의 속성 이름과 일치하지 않는 경우 다음 방법을 사용하여 처리해야 합니다.
첫 번째 방법: 쿼리에서 키워드 "as"를 사용하여 열의 별칭을 지정합니다.
두 번째 방법: resultMap 결과 매핑 사용
세 번째 방법: Hump 명명 자동 매핑 켜기(구성 설정)
엔터티 클래스 자동차:
패키지 com.bjpowernode.domain;
공개 클래스 자동차 {
개인 정수 ID;
개인 문자열 carNum;
개인 문자열 브랜드;
프라이빗 더블 가이드Price;
개인 문자열 생산 시간;
개인 문자열 자동차 유형;
//구성 방법을 축약합니다.
//세터와 게터 略
//toString 약간
데이터베이스의 t_car 테이블:
엔터티 클래스의 속성 이름이 데이터베이스 테이블의 필드 이름과 정확히 일치하지 않아 처리가 필요한 것을 볼 수 있으며, 세 가지 처리 방법은 다음과 같습니다.
첫 번째 방법: "as" 키워드를 사용하여 쿼리 문의 열에 별칭을 지정 하고 별칭은 엔터티 클래스의 속성 이름이어야 합니다.
<select id="selectById" resultType="com.powernode.mybatis.pojo.Car">
선택하다
ID,
car_num을 carNum 으로 ,
상표,
guide_price를 가이드 가격 으로 ,
생산 시간 으로 생산_시간 ,
car_type을 carType 으로
~에서
t_car
어디
아이디 = #{ID}
</select>
두 번째 방법: 다음과 같이 resultMap 결과 매핑을 사용합니다.
<!--
결과맵:
id: 이 결과 매핑의 고유 식별자입니다.
유형: 결과 집합이 매핑되는 클래스(즉, 해당 엔터티 클래스)입니다. 별칭을 사용할 수 있습니다.
-->
<resultMap id="carResultMap" 유형="자동차">
<!-- id는 mybatis의 성능을 향상시키기 위한 개체의 고유 식별자입니다 . 그것에 쓰는 것이 좋습니다. -->
<id 속성="id" 열="id"/>
<결과 속성="carNum" 열="car_num"/>
<!--속성 이름이 데이터베이스 컬럼 이름과 일치하는 경우 생략 가능합니다. 하지만 적어보세요. -->
<!--javaType은 속성 유형을 지정하는 데 사용됩니다. jdbcType은 열 유형을 지정하는 데 사용됩니다. 일반적으로 생략 가능합니다. -->
<result property="brand" 컬럼="브랜드" javaType="string" jdbcType="VARCHAR"/>
<result property="guidePrice" 컬럼="guide_price"/>
<result property="produceTime" 컬럼="produce_time"/>
<result property="carType" 컬럼="car_type"/>
</결과맵>
<!--resultMap 속성의 값은 resultMap 태그의 id 속성 값과 일치해야 합니다. -->
<select id="selectAllByResultMap" resultMap="carResultMap">
t_car에서 *를 선택하세요
</select>
세 번째 방법: Hump 명명 자동 매핑 켜기(구성 설정)
이 방법을 사용하기 위한 전제 조건은 다음과 같습니다.
속성 이름은 Java 명명 규칙을 따르고, 데이터베이스 테이블 열 이름은 SQL 명명 규칙을 따릅니다.
Java 명명 규칙:
첫 번째 문자는 대문자로 표시되고, 험프 명명 규칙에 따라 각 후속 단어의 첫 번째 문자는 대문자로 표시됩니다.
SQL 명명 규칙:
모든 소문자, 단어는 밑줄로 구분됩니다.
예를 들어 다음과 같은 대응이 있습니다.
엔터티 클래스의 속성 이름 데이터베이스 테이블의 열 이름
자동차 번호 car_num
자동차 유형 car_type
생산시간 생산_시간
이 기능을 활성화하려면 mybatis-config.xml 파일에서 다음을 구성해야 합니다:
<!--속성 태그 뒤 -->
<설정>
<설정 이름="mapUnderscoreToCamelCase" 값="true"/>
</설정>