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

首先设计业务bean
一辆车的信息

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

几个list的类型不做赘述,本博客主要讲映射
对应的marrp.xml中设置
创建
<resultMap type="cn.jeep.CarBean.detailsCar" id="oneCar">
<id column="carid" jdbcType="VARCHAR" property="carid" />
<result column="carimg" jdbcType="VARCHAR" property="carimg" />
<result column="carname" jdbcType="VARCHAR" property="carname" />
<result column="cartext" jdbcType="VARCHAR" property="cartext" />
<result column="carzt" jdbcType="INTEGER" property="carzt" />
<!-- 多表 -->
<!-- 配置信息 -->
<collection property="peizhi" ofType="cn.jeep.CarBean.carPeizhi" javaType="java.util.ArrayList" column="carid" select="selectPerizhi">
<id column="zys_carpeizhi_id" jdbcType="VARCHAR" property="carid" />
<result column="pid" jdbcType="VARCHAR" property="pid" />
<result column="pname" jdbcType="VARCHAR" property="pname" />
<result column="pzt" jdbcType="INTEGER" property="pzt" />
</collection>
<!-- 配置图片 -->
<collection property="liimg" ofType="cn.jeep.CarBean.carImg" javaType="java.util.ArrayList" column="carid" select="selectPimg">
<id column="carid" jdbcType="VARCHAR" property="carid" />
<result column="carimg" jdbcType="VARCHAR" property="carimg" />
</collection>
<!-- 详细配置图片 -->
<collection property="liximg" ofType="cn.jeep.CarBean.xCarImg" javaType="java.util.ArrayList" column="carid" select="selectPximg">
<id column="xcarid" jdbcType="VARCHAR" property="xcarid" />
<result column="xcarimg" jdbcType="VARCHAR" property="xcarimg" />
</collection>
</resultMap>
<!-- 多表 -->
<!-- 配置信息 -->
<resultMap id="perizhiMap" type="cn.jeep.CarBean.carPeizhi">
<id column="zys_carpeizhi_id" jdbcType="VARCHAR" property="carid" />
<result column="pid" jdbcType="VARCHAR" property="pid" />
<result column="pname" jdbcType="VARCHAR" property="pname" />
<result column="pzt" jdbcType="INTEGER" property="pzt" />
</resultMap>
<!-- 配置图片 -->
<resultMap id="carImg" type="cn.jeep.CarBean.carImg">
<id column="carid" jdbcType="VARCHAR" property="carid" />
<result column="carimg" jdbcType="VARCHAR" property="carimg" />
</resultMap>
<!-- 详细配置图片 -->
<resultMap id="xcarImg" type="cn.jeep.CarBean.xCarImg">
<id column="xcarid" jdbcType="VARCHAR" property="xcarid" />
<result column="xcarimg" jdbcType="VARCHAR" property="xcarimg" />
</resultMap>
<!-- 第一个配置颜色 -->
<resultMap id="selectPcolor" type="cn.jeep.CarBean.peizhiColor">
<id column="colorid" jdbcType="VARCHAR" property="colorid" />
<result column="colorname" jdbcType="VARCHAR" property="colorname" />
</resultMap>
多次尝试,常规使用的一对多映射不需要写每个bean独立的 resultMap 但是映射过程中打断点发现所有list只能取到每个的第一行数据。
<!-- 封装大型产品详情页的业务bean -->
<!-- 测试多字段映射=================================================== -->
<select id="detailsCars" resultMap="oneCar">
SELECT
zys_cark.`carid`,
zys_cark.`carimg`,
zys_cark.`carname`,
zys_cark.`cartext`,
zys_cark.`carzt`
from zys_cark
WHERE zys_cark.`carid`=#{carid}
</select>
<!-- 配置图片 -->
<select id="selectPerizhi" resultMap="perizhiMap">
select * from zys_carpeizhi where zys_carpeizhi.`carid` =#{carid}
</select>
<!-- 详细配置 -->
<select id="selectPimg" resultMap="carImg">
SELECT * FROM zys_carimg WHERE carid=#{#carid}
</select>
<!-- 详细图片 -->
<select id="selectPximg" resultMap="xcarImg">
select * from zys_xcarimg where xcarid=#{carid}
</select>
<!-- 查一个汽车配置的颜色 -->
<select id="selectOneColor" resultMap="selectPcolor">
SELECT zys_pcolor.`colorid`,zys_color.`colorname`,zys_pcolor.`czt` FROM zys_carpeizhi JOIN zys_pcolor JOIN zys_color
ON zys_carpeizhi.`pid`=zys_pcolor.`pid` AND zys_color.`colorid`=zys_pcolor.`colorid` WHERE zys_carpeizhi.`pid`=#{pid}
</select>
mybatis的一堆多映射使用配置的更多相关文章
- 深入浅出Mybatis系列八-mapper映射文件配置之select、resultMap
注:本文转载自南轲梦 注:博主 Chloneda:个人博客 | 博客园 | Github | Gitee | 知乎 上篇<深入浅出Mybatis系列(七)---mapper映射文件配置之inse ...
- 深入浅出Mybatis系列七-mapper映射文件配置之insert、update、delete
注:本文转载自南轲梦 注:博主 Chloneda:个人博客 | 博客园 | Github | Gitee | 知乎 上篇文章<深入浅出Mybatis系列(六)---objectFactory.p ...
- 深入浅出Mybatis系列(八)---mapper映射文件配置之select、resultMap
上篇<深入浅出Mybatis系列(七)---mapper映射文件配置之insert.update.delete>介绍了insert.update.delete的用法,本篇将介绍select ...
- 深入浅出Mybatis系列(八)---mapper映射文件配置之select、resultMap good
上篇<深入浅出Mybatis系列(七)---mapper映射文件配置之insert.update.delete>介绍了insert.update.delete的用法,本篇将介绍select ...
- 深入浅出Mybatis系列(八)---mapper映射文件配置之select、resultMap[转]
上篇<深入浅出Mybatis系列(七)---mapper映射文件配置之insert.update.delete>介绍了insert.update.delete的用法,本篇将介绍select ...
- MyBatis学习之路之configuration配置
1.首先讲解的是MyBatis核心配置文件configuration.xml的配置 一个完整的configuration.xml配置顺序如下: properties,settings,typeAlia ...
- 【转载】Mybatis多参数查询映射
转载地址:http://www.07net01.com/zhishi/402787.html 最近在做一个Mybatis的项目,由于是接触不久,虽然看了一下资料,但在实际开发中还是暴 露了很多问题,其 ...
- 【mybatis深度历险系列】mybatis中的高级映射一对一、一对多、多对多
学习hibernate的时候,小编已经接触多各种映射,mybatis中映射有到底是如何运转的,今天这篇博文,小编主要来简单的介绍一下mybatis中的高级映射,包括一对一.一对多.多对多,希望多有需要 ...
- 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建四:配置springmvc
在用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建三:配置spring并测试的基础上 继续进行springmvc的配置 一:配置完善web.xml文件
随机推荐
- Git 常见问题汇总
git reabse 合并多个commit git rebase -i HEAD~{NUM} git rebase -i start end 会进入一个指定区间的commit列表 根据提示进行文本编辑 ...
- 10)drf 过滤器(条件查询 排序 ) 分页器
一.群查接口各种筛选组件 数据准备 models.py class Car(models.Model): name = models.CharField(max_length=16, unique=T ...
- 工厂模式(factory pattern)
工厂模式主要用来封装对象的创建,有3种分类:简单工厂(simple factory).工厂方法(factory method).抽象工厂(abstract factory). 简单工厂包括3种组成元素 ...
- 你应该知道的Vue高级特性
本文使用的Vue版本:2.6.10 Vue为我们提供了很多高级特性,学习和掌握它们有助于提高你的代码水平. 一.watch进阶 从我们刚开始学习Vue的时候,对于侦听属性,都是简单地如下面一般使用: ...
- spring对websocket的集成和使用
WebSocket是HTML5提出的一个用于通信的协议规范,该协议通过一个握手机制,在客户端和服务端之间建立一个类似于TCP的连接,从而方便客户端和服务端之间的通信. WebSocket协议本质上是一 ...
- LeetCode 刷题1---两数之和
/** 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个数组中 ...
- uniapp自定义简单弹窗组件
2.0(2019-08-31) 船新版本的信息弹窗组件 插件市场地址:http://ext.dcloud.net.cn/plugin?id=672 可以弹出很多条信息,并单独控制消失时间.点击消失. ...
- 吴恩达机器学习week2
1.Mean normalization(均值归一化) 我们可以将均值归一化理解为特征缩放的另一种方法. 特征缩放和均值归一化的作用都是为了减小样本数据的波动使得梯度下降能够更快速的寻找到一条'捷径' ...
- 【Spark】RDD的依赖关系和缓存相关知识点
文章目录 RDD的依赖关系 宽依赖 窄依赖 血统 RDD缓存 概述 缓存方式 RDD的依赖关系 RDD和它依赖的父RDD的关系有两种不同的类型,即窄依赖(narrow dependency) 和宽依赖 ...
- Mysql常用sql语句(九)- like 模糊查询
测试必备的Mysql常用sql语句,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1683347.html 前言 ...