1. 程式人生 > >mybatis resultType=java.util.Map 時注意返回null

mybatis resultType=java.util.Map 時注意返回null

利用mybatis 動態查詢一條記錄,而返回是一個map(resultType=”java.util.Map”,鍵是欄位名,值是欄位值),比如操作資料庫是通過儲存過程或者是直接傳一個String sql="select * from emp where e_id=1"字串來返回一個map。

1、如果某一列的值為空。查詢這條記錄時就不顯示這列了。《===map中無此對應的鍵

2、如果這個列是number型別,不能給預設值(比如 ‘0’)。只能為空,這樣也會顯示不出來《===map中無此對應的鍵

解決辦法:可以利用Oracle的nvl()函式,比如nvl(欄位,’0’)表示如果欄位為空,則用0字元替代

<select id="queryLogonData" parameterType="java.util.Map" resultType="java.util.Map">
select nvl(aa.DEVICE_CNT,0) DEVICE_CNT, nvl(aa.EVENT_CNT,0) EVENT_CNT, nvl(aa.USER_CNT,0) USER_CNT,
    bb.CAL_NUMBER from
    (select 0 as DEVICE_CNT,sum(a.event_cnt) as EVENT_CNT,count(distinct(a.user_identifier)) as
    USER_CNT,a.CAL_NUMBER
    from razor_dw_user_logon_log_day a
    where 1 = 1
    <if 
test="version != 'all' and '' != version"> <![CDATA[ AND VERSION =#{version} ]]> </if> AND a.APP_KEY IN (SELECT PRODUCTKEY FROM RAZOR_CHANNEL_PRODUCT WHERE PRODUCT_ID = #{productId}) AND a.cal_number between #{startTime} and #{endTime} group by a.cal_number order by a.cal_number ASC) aa right join dim_calendar bb on aa.cal_number = bb.cal_number where bb.cal_number between #{startTime} and #{endTime} order by bb.cal_number ASC </select>

相關推薦

mybatis resultType=java.util.Map 注意返回null

利用mybatis 動態查詢一條記錄,而返回是一個map(resultType=”java.util.Map”,鍵是欄位名,值是欄位值),比如操作資料庫是通過儲存過程或者是直接傳一個String sql="select * from emp where e_id=1"字串來

mybatis中的resultType="java.util.Map",返回有重複資料

文章原話: [{"createTime":1358909152,"scope":0,"LASTRETIME":1358909152,  "SCOPE":0,"CREATETIME":1358909152,"lastReTime":1358909152}] 返回的同一個k

Mybatis---定義ResultType="java.util.Map"問題

一、問題簡述       第二次在目前的專案裡嘗試寫resultType="java.util.Map",使用這種方法,個人覺得有如下的幾種優勢:首先可以不用在多表關聯裡面配置對應的關係,直接進行sql隨意寫,其次可以直接獲得返回的屬性值(給定什麼就接收什麼,避免出現大量返回

mybatis resultType=map,value為null返回結果沒有對應的key

mybatis.xml 配置檔案設定 <configuration> <settings> <!-- 在null時也呼叫 setter,適應於返回Map,3.2版本以上可用 --> <setting name=

Mybatis報錯Could not find parameter map java.util.Map

原來在MyBatis裡面這樣寫的: <select id="aaa" resultMap="java.util.Map" > 正確寫法是這樣: <select id="aaa" resultType="java.util.Map" > 錯誤寫法二:

Mybits呼叫儲存過程和函式返回遊標,parameterType值必須為java.util.Map,由於它會把返回的遊標放在裡面

    <resultMap id="cursorMap" type="com.vcare.model.Photo">         <result column="AD_PIC_ID" property="photoId" jdbcType="INTEGER"/>        

java.util.Map中的putIfAbsent、computeIfAbsent、computeIfPresent、compute基本使用

1、put 插入或覆蓋 map.put(K,V);   2、putIfAbsent      以下情況插入新值      1)key不存在      2)ke

mybatis返回boolean值資料庫返回null

Servlet.service() for servlet [springDispatcherServlet] in context with path [/ms] threw exception [Request processing failed; nested exception is org.apac

mybatis resultType和result Map的區別

使用resultType進行輸出對映,只有查詢出來的列名和pojo中的屬性名一致,該列才可以對映成功。 如果查詢出來的列名和pojo的屬性名不一致,通過定義一個resultMap對列名和pojo屬性名之間作一個對映關係。 舉例: <!DOCTYPE m

Failed to convert property value of type 'java.util.LinkedHashMap' to required type 'java.util.Map' for property 'filters'

在使用shiro的自定義filter出現的問題 <property name="filters"> <util:map> <entry key="rolesOr" value-ref="rolesOrFilter"/

Java.util.Map詳解

Java為資料結構中的對映提供了一個介面Java.util.Map,此介面主要有四個常用的實現類:HashMap、Hashtable、LinkedHashMap和TreeMap。 繼承關係圖為: 下面針對各個實現類的特點做一些說明: (1)HashMap: 它是根據鍵

Could not find result map java.util.Map

org.apache.ibatis.builder.IncompleteElementException: Could not find result map java.util.Map  1.檢視是否將resultType寫成resultMap有則修改  2.全域性搜尋

JSON字串轉javabean-net.sf.ezmorph.bean.MorphDynaBean cannot be cast to java.util.Map

會報錯:MorphDynaBean cannot be cast to java.util.Map     在JSONObject.toBean的時候如果轉換的類中有集合,可以先定義Map<String, Class> classMap = new Hash

SSH之JDK1.8遇錯The type java.util.Map$Entry cannot be resolved.

SSH我們使用的時候大部分使用的是他自身帶的平臺和自帶的tomcat伺服器,但是一旦自己的專案放到自己的開發平臺上事情就不是太美好了,這不是我就遇到了這麼一個難過的問題“The type java.l

mybatis使用char型別欄位查詢oracle資料庫結果返回null

同事在學mybatis時,遇到了一個問題就是,使用char型別欄位作為查詢條件時一直都查不出資料,其他型別的則可以。 使用的資料庫是oracle,查詢條件欄位型別是char(50),java程式碼對應的是String型別。 後來經過排查,是由於在oracle

JAXB 序列化 java.util.Map

使用JAXB序列化java.util.Map介面可能會遇到一些問題,本文通過幾種方式來做map的序列化,包括不做任何處理的序列化、修改節點名稱、新增xml名稱空間、使用XmlAdapter統一名稱空間。 首先介紹下序列化涉及到的幾個類: Customer類包含一個Map

myBatisjava.util.Date型別如何對映到mysql的datetime型別

<update id="updateOrderStatus" parameterType="hashmap"> <![CDATA[ UPDATE HS_TOSS_ORDER SET T_STATUS = #{status,jd

JDK8之The type java.util.Map$Entry cannot be resolved

image type 中項 tomcat7 sys 選擇 進入 jdk ava eclipse+tomcat7+jdk1.6上面報錯的方式我的解法方法是吧jre8換成6的就好了選中項目-》右鍵-》java build path ->找到jre system libra

java.util.Map包下各個類的特點彙總

java.util.Map包下各類和介面的特點如下圖(包含實現方式,特點,父子關係) 文字版是這樣的: Map介面 HashTable 實現:基於拉鍊法,初始長度11,載入因子0.75,擴充套件

mybatis傳入引數為map如何在mapper.xml中獲取

有時在開發中難免會遇到傳入的引數為map型別的時候, map的key為資料庫中的主鍵或者其他的唯一欄位, value為需要進行插入的值,在mybaits的XML檔案中進行遍歷取出map引數中的值, 有兩種方式進行處理方法一:xml檔案中寫法<update id="upd