oracle 数据库字段名与实体类字段名称不匹配的处理方法

之前公司一直都使用sql server 即使数据库字段名称与实体类名称不相同 可以使用诸如:

select id as userId  from tb_user 

 

这种写法,可换到了oracle 之后坑爹的事情发生了,如果还按照上方的写法,属性值就是映射不进去,所以目前找到的解决办法只有使用

<resultMap>来帮助映射:

<!-- 获得查询条件-->
    <select id="getQueryBean" parameterType="com.QueryBean"
            resultMap="tdQueryBean">
        SELECT
        ACCOUNT_NAME,
        ID_NUMBER,
        ACCOUNT_MOBILE ,
        ORGANIZATION,
        SEQ_ID,
        CREATEDATE
        FROM ICS_TD_QUERY_LOG WHERE
        ACCOUNT_NAME=#{account_name} AND
        ID_NUMBER=#{id_number}
        <if test="account_mobile != null">
            AND ACCOUNT_MOBILE = #{account_mobile}
        </if>
        <if test="seq_id != null">
            AND SEQ_ID = #{seq_id}
        </if>
        <![CDATA[AND ROWNUM <= 1]]>
        ORDER BY CREATEDATE DESC
    </select>

    <resultMap type="com.QueryBean" id="tdQueryBean">
        <!-- property对应实体类的属性名称,column为数据库结果集的列的名称 -->
        <result property="account_name" column="ACCOUNT_NAME"/>
        <result property="id_number" column="ID_NUMBER"/>
        <result property="account_mobile" column="ACCOUNT_MOBILE"/>
        <result property="organization" column="ORGANIZATION"/>
        <result property="seq_id" column="SEQ_ID"/>
        <result property="createDate" column="CREATEDATE"/>
    </resultMap>

希望可以帮助到大家

posted @ 2017-09-18 10:04  showme1942  阅读(1331)  评论(0编辑  收藏  举报