日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Mybatis: 返回不同实体(对象数组)

發(fā)布時間:2025/3/21 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mybatis: 返回不同实体(对象数组) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?????? 現(xiàn)在有這樣一個需求:我這里有20個表名,然后隨便選一個,你給我到這個所選的表里面把所有數(shù)據給我拿回來。之前的話我們都是有一個確定的表名,根據這個表創(chuàng)建一個實體類,當返回數(shù)據時,把resultTyoe設成這個實體類就可以了。但是現(xiàn)在要查哪一個表不確定了,也就是說你的resulttype不能寫成一個實體類,有些人說為啥不行,行行行你寫吧,20個表對應20個實體類,累死你。

?????? 最開始想的是直接寫成

public List<Object> fetData (Map<String,Object> params);<select id="getXXXBeanList" parameterType="map" resultType="Object">select * from ${tableName} </select>

想法沒啥問題,但是方式不太對,這樣最后拿到的數(shù)據只有第一列,為啥,我的sql語句沒啥毛病啊。

?????? 其實這就是實體和Object的區(qū)別了,一個實體類,里面定義好了一些屬性字段,當你的resultType寫成一個實體類時,拿到數(shù)據后,它會去找你實體類里面的屬性字段去對應,但是Object里面毛都沒有。要想返回像實體類那樣的東西,還是得靠Map<String,Object>。怎么理解呢,其實你看啊,Map里面的String是不是就對應實體類里面的屬性字段,Object就對應具體的值,我認為這個Map<String,Object>就是一個只有屬性字段沒有方法的實體類。

public List<Map<String,Object>> fetData (Map<String,Object> params);<select id="getXXXBeanList" parameterType="map" resultType="map">select * from ${tableName} </select>

?????? 當你這么寫之后,就發(fā)現(xiàn),最后拿到的就是一個對象數(shù)組,你傳一個不同的表,他就返回一個不同的對象數(shù)組,就不用定義那么多的實體類了。

?????? 有一點要注意,在Mybatis里面,resultType為map時,會把含null值得字段給過濾掉。

總結

以上是生活随笔為你收集整理的Mybatis: 返回不同实体(对象数组)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。