fakertt
2017-12-04 02:44
采纳率: 43.5%
浏览 2.5k
已采纳

mybaties 中 根据两个字段进行自关联分组并查询信息

图片说明
上边是表的字段。实体类都是表明,本身是打算先查出分类,然后再根据分类查询对应的信息
但是使用group by 的话 mybatis中的 resultType该怎么填写啊

我记得可以使用自关联一步到位,sql语句倒是出来了。映射文件该怎么写还没头绪

我是打算根据screenWidth和screenHeight 进行分组并查询到宽高相同的并获取同
组的每条信息

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

15条回答 默认 最新

  • cmrfid_it 2017-12-04 02:48
    已采纳

    和group by没关系,只要你resultType写的类名里面有select出来的所有列的字段名以及对应的get/set方法就行

    点赞 评论
  • xtsam 2017-12-04 02:49

    把当前表当做两个表来处理,先分组处理后,在和当前表做关联

    点赞 评论
  • xtsam 2017-12-04 02:56

    还有如果是比较复杂的查询语句可以直接写一个视图,可以把视图作为一个类来处理,就可以减少在代码中处理单个复杂语句传值问题

    点赞 评论
  • qq_33555379 2017-12-04 03:00

    可以复用定义好的resultMap

    点赞 评论
  • ie0ie0ie 2017-12-04 03:03

    resultType是结果类型,可以int、string这个和你分组是没关系的
    如果你的查询结果是多元类型,可以使用resultMap

    点赞 评论
  • fakertt 2017-12-04 03:08

    。。试了。不行啊,我从网上找到的资料是不是需要针对 group by生成的表 写一个实体类啊

    点赞 评论
  • 果冻剑客 2017-12-04 03:14

    你可以在你的实体类里定义一个字段,该字段不用跟数据库关联,直接在resultMap 上指定就可以接收到sql 查询出来的数据

    如:select id,name,count(*) as count from student group by id,name

    我的数据库字段中没有count这个列,但是如果我查询出来的这个count 要在mybatis 中映射到实体类,
    你就应该在实体类中新建一个属性count,并在resultMap 中指定就行了

    点赞 评论
  • qq_30048015 2017-12-04 03:16

    resultType可以用java.lang.Map啊

    点赞 评论
  • qq_27079385 2017-12-04 03:17

    和group by没关系,只要你resultType写的类名里面有select出来的所有列的字段名以及对应的get/set方法就行

    点赞 评论
  • 李犇犇 2017-12-04 03:22

    和group by没关系,只要你resultType写的类名里面有select出来的所有列的字段名以及对应的get/set方法就行

    点赞 评论
  • huangxuestarrysky 2017-12-04 03:24

    dasdsafddsaf

    点赞 评论
  • 大耳朵狄元芳 2017-12-04 03:25

    返回类型是Map,在DAO的返回值写上List>,这样每一行数据会对应一个Map,Map中对的Key值就是你select查出来的字段名

    点赞 评论
  • 大耳朵狄元芳 2017-12-04 03:28

    返回类型是Map,在DAO的返回值写上

     List<Map<String,String>>
    

    ,这样每一行数据会对应一个Map,Map中对的Key值就是你select查出来的字段名

    点赞 评论
  • qq_39895214 2017-12-04 03:30

    resultType可以用java.lang.Map啊

    点赞 评论
  • 蔷薇夜月 2017-12-04 03:39

    方法一 : 第第三个实体 是这两个表的合体..
    方法二 : 返回java.langmHashMap类型 自已处理对应关系

    点赞 评论

相关推荐 更多相似问题