V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
liian2019
V2EX  ›  Java

请教各位大佬一个 mybatis plus 问题

  •  
  •   liian2019 · 2021-08-05 17:16:32 +08:00 · 1207 次点击
    这是一个创建于 1208 天前的主题,其中的信息可能已经有所发展或是发生改变。
        select
        sum(JOIN_COUNT) as 'joinNum',sum(WIN_COUNT) as 'winNum',sum(DEFRAY_COUNT) as 'writeOffNum'
        from mkplat_activity_point
        where
        activity_id = #{activityId}
        and
        point_id >= #{start}
        and
        point_id <![CDATA[<]]> #{end}
    

    请问这种 sql 在 mp 里面除了 xml 还有啥办法吗,selectMaps 有点麻烦,返回值还要把 map 转为对应的对象,能不能直接通过 mybatis plus 返回一个 StatisticsCount 出来

        @Override
        public StatisticsCount count(String activityId, String start, String end) {
            QueryWrapper<ActivityPointDO> wrapper = Wrappers.query();
            wrapper.select("sum(JOIN_COUNT) as 'joinNum'","sum(WIN_COUNT) as 'winNum'","sum(DEFRAY_COUNT) as 
             'writeOffNum'").
                    eq("activity_id",activityId).
                    ge("point_id",start).
                    lt("point_id",end);
            List<Map<String, Object>> maps = this.getBaseMapper().selectMaps(wrapper);
    
    
        }
    
    2 条回复    2021-08-13 09:44:28 +08:00
    hcen1997
        1
    hcen1997  
       2021-08-12 11:18:27 +08:00
    在 mybatis 中, 如果 select 的列结果名和 class 的结果名对应上, 是可以直接转换的
    <select> select a,b,c from tt where a = #{paramA} </select>
    class CC { String a; String b; String c}
    List<CC> getByParamA(@Param("paramA")String paramA);

    上面这种 sql 和 class 对应的关系, 接口返回类型可以直接写类名, 自动转换了
    mybatis 甚至可以自动转换驼峰和下划线
    liian2019
        2
    liian2019  
    OP
       2021-08-13 09:44:28 +08:00
    @hcen1997 谢谢你,这个我知道,只是想用 mp 的方式,看看能不能脱离掉 xml
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3373 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 12:33 · PVG 20:33 · LAX 04:33 · JFK 07:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.