mybatis查詢數(shù)據(jù)賦值到model里面為空的解決
查詢數(shù)據(jù)賦值到model里為空
因?yàn)閿?shù)據(jù)多所以在查詢中使用分頁,但是發(fā)現(xiàn)直接執(zhí)行sql語句是可以獲取到數(shù)據(jù),而list里面卻是空的
<select id="list" resultType="DaliyDO"> ? ? ? ? select a1.* from ( ? ? ? ? ? ? select ? ? ? ? ? ? ? ? id ,rownum ? ? ? ? ? ? from dual? ? ? ? ? ? ? <where> ? ? ? ? ? ? ? ? <if test="id != null and id != ''"> and id = #{id} </if> ? ? ? ? ? ? </where> ? ? ? ? ? ? <choose> ? ? ? ? ? ? ? ? <otherwise> ? ? ? ? ? ? ? ? ? ? order by id desc ? ? ? ? ? ? ? ? </otherwise> ? ? ? ? ? ? </choose> ? ? ? ? ? ? ) a1 ? ? ? ? <if test="offset != null and limit != null"> ? ? ? ? ? ? where rownum between #{offset} and #{offset}+#{limit} ? ? ? ? </if> ? ? </select>
原因是 resultType屬性與model不對應(yīng)。
我們使用分頁會(huì)在查詢值加入一個(gè)rownum的值,這個(gè)值在我們建立model的時(shí)候是沒有的,所以只要在model里面加上rownum這個(gè)屬性就可以。
當(dāng)然你也可以使用別的分頁方法
查詢無數(shù)據(jù)的時(shí)候問題
1.如果返回值是List、Map這種集合類,會(huì)先執(zhí)行new語句,再賦值。所以判斷是否有數(shù)據(jù)時(shí),只能用size==0來判斷。
2.如果是普通的對象,不會(huì)new,所以可以使用是否為null來判斷是否有數(shù)據(jù)。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java根據(jù)URL下載文件到本地的2種方式(大型文件與小型文件)
這篇文章主要給大家介紹了關(guān)于Java根據(jù)URL下載文件到本地的2種方式,分別是大型文件與小型文件,避免內(nèi)存溢出OOM,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01java中實(shí)現(xiàn)分頁的幾種常見方式總結(jié)
在項(xiàng)目中經(jīng)常會(huì)查詢大量數(shù)據(jù),這就要用到分頁展示,下面這篇文章主要給大家介紹了關(guān)于java中實(shí)現(xiàn)分頁的幾種常見方式,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12