码迷,mamicode.com
首页 > 其他好文 > 详细

mybatis 一对多的映射关系

时间:2015-08-05 22:26:32      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:mybatis

xml中的配置:--通过外键进行关联-->映射到Orders类  orders类中的属性包括(自己本身的属性,和用户的关系的属性User user,和订单明细之间的关系的属性List<OrderDetail>orderdetails)

1)一个订单一个用户(使用association) 

2)一个订单多个订单明细(使用collection)

<!-- ####################################一对多的查询########################################################## -->
	<resultMap type="cn.itcast.domain.Orders" id="OrdersAndOrderDetailResultMap" extends="ordersUserResultMap">
			<!-- 因为使用了继承 下面下注释的代码就没有必要写 -->
			<!-- <id column="id" property="id"/>
			<result column="number" property="number"/>
			<result column="createtime" property="createtime"/>
			<result column="note" property="note"/>
			<result column="user_id" property="userId"/>
			<association property="user" javaType="cn.itcast.domain.User">
				<id column="id" property="id"/>
				<result column="username" property="username"/>
				<result column="sex" property="sex"/>
				<result column="address" property="address"/>
			</association> -->
		<!-- 订单信息 -->
		<!-- 用户信息 -->
		<!-- 订单明细信息 
			一个订单关联查询出了多条明细,使用collection进行映射
			collection:对关联查询到多条记录映射到集合对象中
			property:将关联查询到多条记录映射到cn.itcast.domain.Orders中那个属性
			oftype:指定映射到list集合属性中pojo的类型
		-->
		<collection property="orderdetails" ofType="cn.itcast.domain.Orderdetail" >
			<id column="orderdetail_id" property="id"/>
			<result column="items_num" property="itemsNum"/>
			<result column="items_id" property="itemsId"/>
			<result column="orders_id" property="ordersId"/>
		</collection>
	</resultMap>
	<select id="findOrdersAndOrderDetailResultMap" resultMap="OrdersAndOrderDetailResultMap">
		select orders.*,
		user.username,user.sex,user.address,
		orderdetail.items_id,orderdetail.items_num,orderdetail.orders_id,orderdetail.id orderdetail_id
		from orders,user,orderdetail
		where orders.user_id=user.id and orders.id=orderdetail.orders_id
	</select>
接口中定义方法

public List<Orders> findOrdersAndOrderDetailResultMap();

测试:

@Test
	public void testfindOrdersAndOrderDetailResultMap(){
		SqlSession sqlSession = sqlSessionFactory.openSession();
		 OrdersMapperUser ordersMapperUser = sqlSession.getMapper(OrdersMapperUser.class);
		List<Orders> list = ordersMapperUser.findOrdersAndOrderDetailResultMap();
		System.out.println(list);
	}
测试结果:

技术分享


版权声明:本文为博主原创文章,未经博主允许不得转载。

mybatis 一对多的映射关系

标签:mybatis

原文地址:http://blog.csdn.net/u014010769/article/details/47302939

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!