自己仿站jeep官网在制作商城时,商品详情页面需要带着一个商品的信息,商品的配置,配置对应的颜色,商品的图片   如图

首先设计业务bean

一辆车的信息

业务一对多的大业务bean,继承Car.java

几个list的类型不做赘述,本博客主要讲映射

对应的marrp.xml中设置

创建

  1. <resultMap type="cn.jeep.CarBean.detailsCar" id="oneCar">
  2. <id column="carid" jdbcType="VARCHAR" property="carid" />
  3. <result column="carimg" jdbcType="VARCHAR" property="carimg" />
  4. <result column="carname" jdbcType="VARCHAR" property="carname" />
  5. <result column="cartext" jdbcType="VARCHAR" property="cartext" />
  6. <result column="carzt" jdbcType="INTEGER" property="carzt" />
  7. <!-- 多表 -->
  8. <!-- 配置信息 -->
  9. <collection property="peizhi" ofType="cn.jeep.CarBean.carPeizhi" javaType="java.util.ArrayList" column="carid" select="selectPerizhi">
  10. <id column="zys_carpeizhi_id" jdbcType="VARCHAR" property="carid" />
  11. <result column="pid" jdbcType="VARCHAR" property="pid" />
  12. <result column="pname" jdbcType="VARCHAR" property="pname" />
  13. <result column="pzt" jdbcType="INTEGER" property="pzt" />
  14. </collection>
  15. <!-- 配置图片 -->
  16. <collection property="liimg" ofType="cn.jeep.CarBean.carImg" javaType="java.util.ArrayList" column="carid" select="selectPimg">
  17. <id column="carid" jdbcType="VARCHAR" property="carid" />
  18. <result column="carimg" jdbcType="VARCHAR" property="carimg" />
  19. </collection>
  20. <!-- 详细配置图片 -->
  21. <collection property="liximg" ofType="cn.jeep.CarBean.xCarImg" javaType="java.util.ArrayList" column="carid" select="selectPximg">
  22. <id column="xcarid" jdbcType="VARCHAR" property="xcarid" />
  23. <result column="xcarimg" jdbcType="VARCHAR" property="xcarimg" />
  24. </collection>
  25. </resultMap>
  26. <!-- 多表 -->
  27. <!-- 配置信息 -->
  28. <resultMap id="perizhiMap" type="cn.jeep.CarBean.carPeizhi">
  29. <id column="zys_carpeizhi_id" jdbcType="VARCHAR" property="carid" />
  30. <result column="pid" jdbcType="VARCHAR" property="pid" />
  31. <result column="pname" jdbcType="VARCHAR" property="pname" />
  32. <result column="pzt" jdbcType="INTEGER" property="pzt" />
  33. </resultMap>
  34. <!-- 配置图片 -->
  35. <resultMap id="carImg" type="cn.jeep.CarBean.carImg">
  36. <id column="carid" jdbcType="VARCHAR" property="carid" />
  37. <result column="carimg" jdbcType="VARCHAR" property="carimg" />
  38. </resultMap>
  39. <!-- 详细配置图片 -->
  40. <resultMap id="xcarImg" type="cn.jeep.CarBean.xCarImg">
  41. <id column="xcarid" jdbcType="VARCHAR" property="xcarid" />
  42. <result column="xcarimg" jdbcType="VARCHAR" property="xcarimg" />
  43. </resultMap>
  44. <!-- 第一个配置颜色 -->
  45. <resultMap id="selectPcolor" type="cn.jeep.CarBean.peizhiColor">
  46. <id column="colorid" jdbcType="VARCHAR" property="colorid" />
  47. <result column="colorname" jdbcType="VARCHAR" property="colorname" />
  48. </resultMap>

多次尝试,常规使用的一对多映射不需要写每个bean独立的    resultMap   但是映射过程中打断点发现所有list只能取到每个的第一行数据。

  1. <!-- 封装大型产品详情页的业务bean -->
  2.  
  3. <!-- 测试多字段映射=================================================== -->
  4. <select id="detailsCars" resultMap="oneCar">
  5. SELECT
  6. zys_cark.`carid`,
  7. zys_cark.`carimg`,
  8. zys_cark.`carname`,
  9. zys_cark.`cartext`,
  10. zys_cark.`carzt`
  11. from zys_cark
  12. WHERE zys_cark.`carid`=#{carid}
  13. </select>
  14. <!-- 配置图片 -->
  15. <select id="selectPerizhi" resultMap="perizhiMap">
  16. select * from zys_carpeizhi where zys_carpeizhi.`carid` =#{carid}
  17. </select>
  18. <!-- 详细配置 -->
  19. <select id="selectPimg" resultMap="carImg">
  20. SELECT * FROM zys_carimg WHERE carid=#{#carid}
  21. </select>
  22. <!-- 详细图片 -->
  23. <select id="selectPximg" resultMap="xcarImg">
  24. select * from zys_xcarimg where xcarid=#{carid}
  25. </select>
  26.  
  27. <!-- 查一个汽车配置的颜色 -->
  28. <select id="selectOneColor" resultMap="selectPcolor">
  29. SELECT zys_pcolor.`colorid`,zys_color.`colorname`,zys_pcolor.`czt` FROM zys_carpeizhi JOIN zys_pcolor JOIN zys_color
  30. ON zys_carpeizhi.`pid`=zys_pcolor.`pid` AND zys_color.`colorid`=zys_pcolor.`colorid` WHERE zys_carpeizhi.`pid`=#{pid}
  31. </select>

mybatis的一堆多映射使用配置的更多相关文章

  1. 深入浅出Mybatis系列八-mapper映射文件配置之select、resultMap

    注:本文转载自南轲梦 注:博主 Chloneda:个人博客 | 博客园 | Github | Gitee | 知乎 上篇<深入浅出Mybatis系列(七)---mapper映射文件配置之inse ...

  2. 深入浅出Mybatis系列七-mapper映射文件配置之insert、update、delete

    注:本文转载自南轲梦 注:博主 Chloneda:个人博客 | 博客园 | Github | Gitee | 知乎 上篇文章<深入浅出Mybatis系列(六)---objectFactory.p ...

  3. 深入浅出Mybatis系列(八)---mapper映射文件配置之select、resultMap

    上篇<深入浅出Mybatis系列(七)---mapper映射文件配置之insert.update.delete>介绍了insert.update.delete的用法,本篇将介绍select ...

  4. 深入浅出Mybatis系列(八)---mapper映射文件配置之select、resultMap good

    上篇<深入浅出Mybatis系列(七)---mapper映射文件配置之insert.update.delete>介绍了insert.update.delete的用法,本篇将介绍select ...

  5. 深入浅出Mybatis系列(八)---mapper映射文件配置之select、resultMap[转]

    上篇<深入浅出Mybatis系列(七)---mapper映射文件配置之insert.update.delete>介绍了insert.update.delete的用法,本篇将介绍select ...

  6. MyBatis学习之路之configuration配置

    1.首先讲解的是MyBatis核心配置文件configuration.xml的配置 一个完整的configuration.xml配置顺序如下: properties,settings,typeAlia ...

  7. 【转载】Mybatis多参数查询映射

    转载地址:http://www.07net01.com/zhishi/402787.html 最近在做一个Mybatis的项目,由于是接触不久,虽然看了一下资料,但在实际开发中还是暴 露了很多问题,其 ...

  8. 【mybatis深度历险系列】mybatis中的高级映射一对一、一对多、多对多

    学习hibernate的时候,小编已经接触多各种映射,mybatis中映射有到底是如何运转的,今天这篇博文,小编主要来简单的介绍一下mybatis中的高级映射,包括一对一.一对多.多对多,希望多有需要 ...

  9. 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建四:配置springmvc

    在用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建三:配置spring并测试的基础上 继续进行springmvc的配置 一:配置完善web.xml文件

随机推荐

  1. uboot on qemu

    1, download uboot ftp://ftp.denx.de/pub/u-boot/ 2, compile uboot make vexpress_ca9x4_config export A ...

  2. ACM模板合集

    写在前面: 第一年小白拿铜牌,第二年队友出走,加上疫情原因不能回校训练导致心底防线彻底崩盘,于是选择退役. 自从退役之后,一直想我打了那么久的ACM,什么也没留下觉得很难受,突然想到我打ACM的时候, ...

  3. CodeForces - 1245F Daniel and Spring Cleaning (数位DP)

    While doing some spring cleaning, Daniel found an old calculator that he loves so much. However, it ...

  4. Makefile中的CFLAGS,LDFLAGS,LIBS

    CFLAGS:C编译器选项,而CXXFLAGS表示C++编译器的选项 1. CFLAGS参数 选项 说明 -c 用于把源码编译成.o对象文件,不进行链接过程 -o 用于连接生成可执行文件,在其后可以指 ...

  5. Nginx模块开发(5)————开发简单的HTTP过滤模块

    该模块可实现如下的功能,在浏览器输入http://你的IP/lcw.text,能够读出你在根目录下创建的lcw.txt里面的内容,并在前面加上一句字符串where there is a will,th ...

  6. C++ 函数重载,函数模板和函数模板重载,选择哪一个?

    重载解析 在C++中,对于函数重载.函数模板和函数模板重载,C++需要有一个良好的策略,去选择调用哪一个函数定义(尤其是多个参数时),这个过程称为重载解析. (这个过程将会非常复杂,但愿不要遇到一定要 ...

  7. B. Welfare State(RMQ问题的逆向考虑)

    \(对于操作1,我们只关心最后一次操作.\) \(对于操作2,我们只关心值最大的一次操作.\) \(也就是说,我们记录每个居民最后一次被修改的位置\) \(然后它的最终答案就是从这个位置起,max(操 ...

  8. 龟兔赛跑算法 floyed判环算法

    今天写线段树写到要用到这个算法的题目,简单的学习一下. https://blog.csdn.net/javaisnotgood/article/details/89243876 https://blo ...

  9. 王颖奇 201771010129《面向对象程序设计(java)》第八周学习总结

    实验六 接口的定义与使用 实验时间 2018-10-18 1.实验目的与要求 (1) 掌握接口定义方法: (2) 掌握实现接口类的定义要求: (3) 掌握实现了接口类的使用要求: (4) 掌握程序回调 ...

  10. 【Hadoop离线基础总结】zookeeper的介绍以及集群环境搭建、网络编程和RPC的简单了解

    ZooKeeper的介绍以及集群环境搭建.网络编程和RPC的简单了解 ZooKeeper介绍 概述 ZooKeeper是一个分布式协调服务的开源框架,主要用来解决分布式集群中应用系统的一致性问题.例如 ...