在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java  網(wǎng)絡(luò)安全/ mybatis如何接收含count的返回結(jié)果?

mybatis如何接收含count的返回結(jié)果?

查詢用戶選課數(shù)最多的前N個(gè)用戶,選課數(shù)也要查詢出來

對應(yīng)的sql如下:

<select id="getUserWithMostFans" resultMap="???">
    SELECT t.userId,t.selectNum
    FROM
    (
        SELECT
            userId,
            count(course) AS selectNum
        FROM
            user_course
        GROUP BY
            userId
        ORDER BY
            selectNum
    ) t  LIMIT 10

問題:
1.如何接收返回值?
當(dāng)然可以用map來接收返回值,但一般不推薦用map。
另外,如果定義resultMap,也需要指定一個(gè)type

<resultMap id="" type="?????">
    <result   />
    <result   />
</resultMap>

如果這樣,也就需要另外定義一個(gè)對象。
2.如果另外定義一個(gè)對象,那么該對象能算作DO嗎?還是應(yīng)該當(dāng)做VO來處理???
VO明顯也不太合適?而DO又是和數(shù)據(jù)庫字段一一對應(yīng)的,數(shù)據(jù)庫的返回結(jié)果應(yīng)該不屬于DO的范疇了吧?

希望各位大大給我解惑?謝謝!

回答
編輯回答
妖妖

建議方案2,定義新的對象。Map中的key需要用別的方式維護(hù)(一般是注釋或doc),以后得維護(hù)成本要高很多。

DO與表結(jié)構(gòu)對應(yīng),封裝業(yè)務(wù)邏輯,這個(gè)命名不合適。
VO與展示相關(guān),這個(gè)比較合適,當(dāng)然也可以叫DTO

2018年7月19日 14:40