mybatis 動態字段處理及數據返回


mybatis映射文件:

<select id="find" parameterType="java.util.Map" resultType="map">
        SELECT org_id,
        org.org_name, ${sqlParam},
        r.create_date
        FROM r_index_org_score
    </select>

${sqlParam} 是通過代碼拼接的sql片段,通過$直接拼接到SQL語句中,拼接的SQL片段中存在動態字段,不在mybatis映射文件的resultMap中,這時該語句的返回類型使用 map(即 resultType="map"),在mapper層通過 Map接收。

${sqlParam} 的內容如下:

 max( CASE r.index_id WHEN '1' THEN r.score ELSE 0 END ) zzthyl,
 max( CASE r.index_id WHEN '2' THEN r.score ELSE 0 END ) OA_HYL,
 max( CASE r.index_id WHEN '3' THEN r.score ELSE 0 END ) ZLB_ZCL,

Mapper層對該方法的調用,通過Map接收查詢結果,如下:
List<Map<String, Object>> find(@Param("orgId") int orgId);

這樣獲取的所有字段類型,與數據庫中對應字段類型完全一致,按照jdk的語法環境進行解析為對應數據格式。與持久化層的resultMap中的屬性格式、與DAO層的屬性格式無關。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM