데이터베이스의 필드 이름과 엔터티 클래스의 속성 이름이 일대일로 대응할 수 없는 경우 세 가지 처리 방법

쿼리 결과의 컬럼 이름이 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"/>

</설정>

Supongo que te gusta

Origin blog.csdn.net/heliuerya/article/details/131299340
Recomendado
Clasificación