当前位置: 首页 > news >正文

外贸企业网站设计公司网站模板上传

外贸企业网站设计公司,网站模板上传,招商网站的建设目的,全球设计行一对多关联映射 一对多关联映射有两种方式,都用到了collection元素 以购物网站中用户和订单之间的一对多关系为例 collection集合的嵌套结果映射 创建两个实体类和映射接口 package org.example.demo;import lombok.Data;import java.util.List;Data public cla…

一对多关联映射

一对多关联映射有两种方式,都用到了collection元素

以购物网站中用户和订单之间的一对多关系为例

collection集合的嵌套结果映射

创建两个实体类和映射接口

package org.example.demo;import lombok.Data;import java.util.List;@Data
public class User {private Integer userId;private String userName;private String password;private Cart cart;private List<Order> orderList;
}
package org.example.demo;import lombok.Data;@Data
public class Order {private Integer orderId;private double price;
}

实现根据用户id查询出所有用户信息,包括该用户的所有订单信息 

package org.example.mapper;import org.example.demo.User;import java.util.List;public interface UserMapper {User findUserAndOrderListByUserId(Integer userId);
}
方式一:与association类似,集合的嵌套结果映射就是指通过一次SQL查询得到所有的结果 
<resultMap type="com.mybatis.entity.User" id="userMap"><id property="id" column="id"/><result property="userName" column="user_name"/><result property="password" column="password"/>
</resultMap>
<resultMap type="com.mybatis.entity.User" id="userAndOrderListMap" extends="userMap"><collection property="orderList" ofType="com.mybatis.entity.Order"><id property="id" column="order_id"/><result property="price" column="price"/></collection>
</resultMap>
<select id="findUserAndOrderListById" resultMap="userAndOrderListMap">select u.id, u.user_name, u.password,o.order_id, o.pricefrom user uleft join orders o on u.id = o.user_idwhere u.id = #{id}
</select>

resultMap元素中的extends属性可以实现结果映射的继承

collection的ofType属性指定集合中元素的类型,必选项 

    <resultMap id="userAndOrderMap" type="org.example.demo.User"><id property="userId" column="user_id"/><result property="userName" column="user_name"/><result property="password" column="password"/><collection property="orderList" ofType="org.example.demo.Order"><id property="orderId" column="order_id"/><result property="price" column="price"/></collection></resultMap><select id="findUserAndOrderListByUserId" resultMap="userAndOrderMap">select*from t_user uleft join t_order o on u.user_id = o.user_idwhere u.user_id = #{userId};</select>

 

collection集合的嵌套查询

集合的嵌套查询同样会执行额外的SQL查询

<resultMap type="com.mybatis.entity.User"id="userAndOrderListMap" extends="userMap"><collection property="orderList" column="{uid=id}"ofType="com.mybatis.entity.Order"       select="com.mybatis.mapper.OrderMapper.findOrdersByUserId"></collection>
</resultMap>
<select id="findUserAndOrderListById" resultMap="userAndOrderListMap">select * from user where id = #{id}
</select>

OrderMapper.xml

<resultMap type="com.mybatis.entity.Order"id="orderMap"><id property="id" column="order_id"/><result property="price" column="price"/>
</resultMap>
<select id="findOrdersByUserId"resultMap="orderMap">select * from orders where user_id = #{uid}
</select>

对比两种方式

第一种方式属于“关联的嵌套结果映射“,即通过一次SQL查询根据表或指定的属性映射到不同的对象中

第二种方式属于“关联的嵌套查询”,利用简单的SQL语句,通过多次查询得到想要的结果,也可以实现延迟加载效果 

 

 

http://www.yayakq.cn/news/342213/

相关文章:

  • 济南网站制作软件网站怎么在移动端推广
  • 网站开发所需费用2021网页设计尺寸
  • 泊头市有做网站的吗网络营销软文范例500
  • 论坛网站制作费用深圳极速网站建设服务
  • 珠宝网站设计方案百度指数专业版app
  • 网站制作网站开发怎么免费建网站
  • 深圳大浪有做网站的吗深圳装修公司电话
  • 专业微网站电话号码徐州教育平台网站建设
  • 搞网站开发的程序员属于哪一类整站优化系统
  • 网站集约化平台建设分析网站中使用特殊字体
  • 网站开发安装网站创建桌面快捷方式
  • 船员专用网站开发建议iphone下载网页视频
  • wap网站浏览器大淘客网站logo怎么做
  • 网站风格抄袭seo推广是什么意思
  • 河南平台网站建设网站制作公司新鸿儒
  • -邵阳网络公司-邵阳网站建设|邵阳网站制作分享一个网站能用的
  • 京山网站制作商城展示网站
  • 公司网站制作门槛目前中国建筑行业现状
  • 网站添加缩略图中牟高端网站建设
  • 找公司做网站南京多样化的网站建设定制公司
  • 做网站基本买什么就开什么网站吗
  • 省建设厅网站建筑材料备案申请如何做视频网站不侵权
  • 东莞微信网站建设咨询义乌网红直播基地
  • 用股票代码做网站的手机医疗网站模板
  • 备案 网站 漏接 电话甘肃省住房和城乡建设部网站
  • 做博客网站怎么赚钱建设门户网站的公司
  • 电子商务网站开发的流程产品网
  • 做网站如何变现上海专业网站建设精英
  • 门户网站建设费用科目wordpress 论坛 小程序
  • 微信网站搭建j2ee 建设简单网站