使用的数据库表是食品表和食品分类表,
如果有不清楚表结构的可以查看上一篇文章, mybatis查询(一对一查询)(http://blog.csdn.net/wqh8522/article/details/54615337)
一、一对多查询
1、定义po类:
这里po类与上一篇的po类相同,就不再贴代码了。
2、ResultMap映射配置:
因为两个表的id字段重复,所以使用别名,将foodtype表的id字段定义为t_id
<!-- 定义食品类和食品的ResultMap -->
<resultMap type="foodType" id="ft_f">
<id column="t_id" property="id"/>
<result column="typename" property="typename"/>
<result column="typedescribe" property="typedescribe"/>
<!-- 食品信息映射 -->
<collection property="food" ofType="com.wqh.hotel.domain.Food">
<id column="id" property="id"/>
<result column="foodName" property="foodName"/>
<result column="price" property="price"/>
<result column="mprice" property="mprice"/>
<result column="img" property="img"/>
<result column="foodType_id" property="foodType_id"/>
<result column="remark" property="remark"/>
</collection>
</resultMap>
collection:映射集合对象;
property:将食品信息映射到哪个集合;
ofType:集合中对象的类型
3、sql语句:
<select id="findAllFoodTypeOrFood" resultMap="ft_f">
select foodtype.id as t_id,foodtype.typename,foodtype.typedescribe,food.* from foodtype,food where foodtype.id=food.foodType_id;
</select>
4、mapper.java:
List<FoodType> findAllFoodTypeOrFood();
5、结果:
这里查询到四条分类信息,在第一个分了中有三条食品的信息。