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

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

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

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

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

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

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

可以复用定义好的resultMap

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

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

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

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

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

resultType可以用java.lang.Map啊

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

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

dasdsafddsaf

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

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

 List<Map<String,String>>

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

resultType可以用java.lang.Map啊

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