mybatis多表插入问题

刚开始学习mybatis,不太清楚多表关联的情况下如何插入记录,希望大家能不吝赐教。
比如在一个项目的购物车设计中,有一个购物车cart类和购物车条目cartItem类,其中cart的主键是cartItem中的外键,cartItem内有商品Cloth的属性,请问如果要往购物车内插入一条数据应该怎么在配置文件中写insert呢?
以下是cartMapper.xml的resultMap
[code="java"]

resultMap="com.test.mapper.UserMapper.userResultMap"/>
javaType="ArrayList" ofType="CartItem"
resultMap="com.test.mapper.CartItemMapper.cartItemResultMap"/>
[/code]
cartItemMapper.xml:
[code="java"]


resultMap="com.test.mapper.CartMapper.cartResultMap"/>
resultMap="com.test.mapper.ClothMapper.clothResultMap"/>
[/code]
新手积分比较少,大家莫要嫌弃。。

0

2个回答

CartItem插入的时候,[code="xml"]
values(
#{cartItemId},
#{clothNumber},
#{cart.cartId},
#{cloth.clothId}
)
[/code]

0
cfydaniel
Daniel_Tsai 谢谢,觉得没必要分别插入就把购物车和条目合并成一张表直接传对应参数插入了
大约 5 年之前 回复
lxm_yl
ascendlin cart插入values( #{cartId}, #{user.userId} )
大约 5 年之前 回复

购物车和商品单独查询,然后再组装,这样不是很简单么。

0
cfydaniel
Daniel_Tsai 恩。感觉没必要把购物车和购物车条目分为两个表就合并了,然后在mapper接口中传了user对象和clothId为参数,直接把对应字段插入到了表里面
大约 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Mybatis实现多表联合查询和批量插入
文档中主要说明进行多表联合查询步骤以及对数据批量插入
mybatis的多表关联插入
权限表 private String id; private String name; private String code; // 关键字 private String description; private String page; //路径 private String generatemenu;//是否生成菜单 p...
学无止境(1)关于Mybatis注解多表添加数据操作
今天是2017年11月28日! 今天起,正式开启学无止境系列,其实也没什么,就是记录下自己在编码中遇到的问题,学无止境嘛,遇到问题就要解决问题。今天在用Mybatis+springMVC+spring做一个小练习,所有配置全部用的注解,之前对于Mybatis的学习,只是对配置方式掌握的还行,对于注解没有学到位。这次又全部用注解,所以遇到一个问题,就是多表添加数据。之前只会多表联查,练习的时候查询也
mybatis主表与明细表一对多的同时插入操作
对主表(采购申请表)和明细表(申请物资表)同时进行插入操作insert: <!--对申请主表插入一条记录 --> <insert id="save" parameterType="com.bootdo.purchase.domain.ApplyDo" useGeneratedKeys="true" keyProperty="applyId"> INSERT
4、SpringBoot+Mybatis多表操作以及增删改查
Mybatis整合成功之后,接下来了解一下增删改查的配置以及多表操作,先从增删改查开始为了方便后面的多表操作,现在针对数据表的配置我这里全部在xml中配置(暂时不用注解的方式了),先看一下目前的工程结构(注意包名) 首先为了了解增删改查的操作,我这里将针对数据库中的一个文章表进行操作,文章表结构如下: sql语句CREATE TABLE `diary` ( `_id` int(11)
MyBatis笔记二-增删改查-事务-简单的多表联查
在Spring框架下测试了下MyBatis的功能。
7.mybatis(Sql深入、多表查询、连接池与事务深入)
1、Mybatis的连接池与事务深入 (1)存储连接池的特征:存放在队列里结构的连接池 (2)我们不用连接池技术时:先初始化,然后再去调用driverManger (3)Mybatis连接池将它自己的数据源分类: l UNPOOLED 不使用连接池的数据源 l POOLED 使用连接池的数据源 l JNDI 使用JNDI实现的数据源 (4)JNDI Jndi不仅...
MyBatis框架进行多表操作(两表)
a)实体之间的关系分类 1.实体之间有关联关系(有 从属 has a)【重点】 i.1:1 ii.1:* Iii.: 2.实体之间继承关系(is a) b)MyBatis中如何处理关联关系
mybaits获取主键
一次性插入多表数据, 在mapper中的insert方法中加入: <selectKey resultType="java.lang.Long" order="AFTER" keyProperty="id"> SELECT LAST_INSERT_ID() AS id </selectKey> 构建组合实体类 ...
SSMybatis整合(二) -- 加入SpringMVC进行多表级联操作
---上节课我们讲了Mybatis的单表增删改查,关于代码我注释的比较详细,我相信初学的小伙伴还是多少能有一些收获的. - 第一集传送门:http://blog.csdn.net/jacxuan/article/details/62040956 - ---经过一段时间的沉寂之后,我们也应该提升一点难度,讲讲现在主流的Spring+Mybatis+Maven框架对数据库的操作了. ---Spring
mybatis多表保存,可以配置mapper.xml将插入的数据ID映射到参数对象
主键id是自动增长: <insert id="insert" parameterType="com.demo.Student"> <selectKey resultType="java.lang.Long" order="AFTER" keyProperty="id"> SELECT LAST_INSERT_
07 mybatis的多表操作
07:mybatis的多表操作 //TODO
最终解决Mybatis多表联合查询中字段名重复导致的各路问题
解决字段名重复导致的问题,简单直接的方法是设置别名,例如 <id column="id" jdbcType="BIGINT" property="id"/> <result column="name" jdbcType="VARCHAR" property="name"/> <association property="post" column="pos
mybatis:主表与副表一对多时插入操作如何获取刚保存的主键ID
话不多说直接上代码: 主表:GoodShelf、副表:pallets 主表上加上:useGeneratedKeys="true" keyProperty="id" ,id为主键名称,省略不重要的代码 &lt;insert id="insertSelective" parameterType="com.ljb.entity.GoodShelf" useGeneratedKeys="true...
MyBatis中的多表操作情形一:一对一(方式1:一条sql语句查询)
MyBatis支持多表操作,即可以将数据库中多表的关系映射到对象之间的关系中 表与表之间的关系可以有:一对一,一对多,多对多 关系一演示案例:人和身份证是一对一的,分别建两个表person和card,其中person的cardid字段外键关联card的id,当需求是查询某人姓名、年龄及身份证号时就需要外连接,查询结果在MyBatis中是如何映射到对象中的呢? 备注:未用MyBatis框架前,我们...
MyBatis之多表之间的联系与缓存
多表之间的联系: 一对多:查询哪些人有哪些车 Demo3.java package cn.hncu.demo; import java.sql.SQLException; import java.util.List; import java.util.Set; import org.apache.ibatis.session.SqlSession; import org.j
Mybatis一对多中的SQL(查询、删除、更新、插入)及表的设计
1.1现实模型一个Teacher有多个Student,一个Student有一个Teacher,通过Teacher来管理Student1.2实体类Teacherpublic class Teacher { private int id; private String name; private Set<Student> stus=new HashSet<Student>();
Mybatis 多对多关联表关联 如何插入关联表数据
很多时候我们会碰到这样一个需求,当前我有(用户)表和(角色)表,他们之间是多对多的关系,所以我们通常会创建一个关联表(用户_角色)表,现在我们有固定的角色,只需要添加用户即可,给用户指定角色,那我们怎么做呢,废话不多说了,下面给出思路:         表 :user   /   role   /   user_role  对应JavaBean如下: 用户表: public
MyBatis 动态修改多表数据
update product p join productcategory c on p.categoryId=c.id join productstock s on p.ProId=s.ProId &amp;lt;set&amp;gt; &amp;lt;if test=&quot;proName!= null &quot;&amp;gt; p.ProName=#{proName} &amp;lt;/if&amp;gt; &amp;lt...
spring boot整合mybatis添加数据(带表单验证功能)(二)
1.在pox中添加依赖 &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;dependency&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt; &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;groupId&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;org.mybatis.
mybatis3.0 多对多映射CRUD操作实例
   mybatis3.0添加了association和collection标签专门用于对多个相关实体类数据进行级联查询,但仍不支持多个相关实体类数据的级联保存和级联删除操作。因此在进行实体类多对多映射表设计时,需要专门建立一个关联对象类对相关实体类的关联关系进行描述。下文将以“User”和“Group&quot;两个实体类之间的多对多关联映射为例进行CRUD操作。      建立user表,对应实体类...
MyBatis 多对多 中间表插入数据
在做这个员工管理系统demo的时候,由于user和role是多对多关系,且user主键是自增的,所有我们没办法提前知晓这个user_id,所以插入的时候,就需要先插入user,然后再找到刚插入的id拿出来,再插入中间表user_role,这样才能将表关系对应起来,才能算一个完整的插入的过程。所以现在的问题就是怎么知道这个user_id,再怎么拿出来,再插入中间表user_role。方法:在MyBat
Mybatis多表关联映射
Mybatis多表关联映射 查询结果集ResultMap resultMap 元素是 MyBatis 中最重要最强大的元素。它就是让你远离 90%的需要从结果 集中取出数据的 JDBC 代码的那个东西,而且在一些情形下允许你做一些 JDBC 不支持的事 情。 事实上, 编写相似于对复杂语句联合映射这些等同的代码,也许可以跨过上千行的代码。 有朋友会问,之前的示例中我们没有用到结果集,
mybaits多表删除问题
两种方法 第一种 1、修改数据库连接参数加上allowMultiQueries=true hikariConfig.security.jdbcUrl=jdbc:mysql://xx.xx.xx:3306/xxxxx?characterEncoding=utf-8&autoReconnect=true&failOverReadOnly=false&allowMultiQueries
springboot整合mybatis-plus实现多表分页查询
springboot整合mybatis-plus实现多表分页查询,assocication和collection一对一,一对多关联。简单易懂,容易上手!
Mybatis--多表之间的关联映射(五)
(一)关联关系概述 (二)一对一实例演示 项目文件结构图 01创建t_idcard和t_person数据表 CREATE TABLE `t_idcard` ( `id` int(11) NOT NULL AUTO_INCREMENT, `code` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGI...
SpringBoot+MyBatisPlus实现插入关联多表数据的接口(企业质检管理举例)
场景 SpringBoot项目中实现开放一个接口,接受上位机传递的tryCode(托盘编号),进而在关联的两个表中插入数据。 效果 接口传递参数 接口返回数据 实现 在SpringBoot项目中的Controller @Description("扫码生成单件质检单") @RequestMapping(value="/generatingSingleJianQual...
MyBatis 多表连接查询
多表连接的两种方式(数据库逻辑模型): 1.一对一关系 2.一对多关系 一、通过 resultMap 和 association 实现一对一关系 在 mapper.xml 文件里面的代码: &amp;lt;resultMap type=&quot;com.pojo.TRecruitment&quot; id=&quot;tRecruitmentCollegeResultMap&quot;&amp;gt; &amp;lt;id property=...
MyBatis(三) 解决设置数据库自增后,导致两表关联插入的数据不匹配问题
最近在做关联数据插入的时候,遇到一个问题,先描述一下我遇到的问题: 有三张表:商品表:goods(id,name,price) 订单表:payment(id,payment_date,count) 关系表:relation(id,goods_id,p...
MyBatis关联映射,一对多实例:增删改查
实例:一个班级可以有多个学生,一个学生只能属于一个班级。OneToManyTest:实现增删改查 1、创建两个表:tb_class、tb_student tb_class: tb_student: 2、实体类创建Clazz类与Student类分别映射 tb_clazz 和tb_student Clazz : public class Clazz { private Integer id; ...
MyBatis代码实例系列-04:MyBatis多表映射实例(一对多、多对一和多对多)
超级通道:MyBatis代码实例系列-绪论 本章主要记录MyBatis中的多表映射:一对多、多对一和多对多,涉及到的知识点有: 1. resultMap:当数据库方法返回的是复合数据类型(如list等),通常使用resultMap而非resultType。 2. collection:在resultMap中用来配置集合类型的数据结构,用来实现表间一对多映射。 3. association:
MyBatis--关联关系查询--一对多--多表连接查询
一对多: 在一中创建多的集合属性:
MyBatis多表连接
[b]MyBatis多表连接[/b] 这是一个用来说明如何使用MyBatis、Java和MySQL实现多表连接的例子。 三个表: [b]address[/b] [table] |id|address_data [/table] [b]address_type[/b] [table] |id|type [/table] [b]address_mapping[/b] [tabl...
MyBatis多表关系查询时的注意事项
给大家推荐个靠谱的公众号程序员探索之路,大家一起加油  property:类中的属性名 column:表中的字段名称    sql语句查询出来的字段的名称  如果没有起别名那么默认的就是数据库中表的别名 如果起别名那么就要用别名 坑点: 数据库:注意看外键关系 position表   user表    &amp;lt;!-- 查询结果集注意   position p中主键的字段名是id ...
[Mybatis错误集锦] 如何解决两张表中字段相同冲突问题
问题描述 表结构 查询的xml映射 问题 解决方法 解决方案 修改代码 问题描述表结构 t_employee表(员工表) t_department表(部门表) 查询的xml映射 EmployeeMapper.xml <resultMap id="BaseAndDepartmentResultMap" type="cn.comman.crud.pojo.Em
PageHelpher、MyBatis关联查询,多表查询分页问题
一般MyBatis作为ORM框架,需要做分页一般会选择使用PageHelper。PageHelper非常强大的分页插件,和mybatis整合也非常方便。PageHelper对单表分页或者整体结果集分页是比较方便的。 不过有时我们会遇到这样的问题。利用MyBatis做多表的关联查询,分页的对象不是所有结果集,而是对其中一张表分页,然后再关联其他表的数据,如果直接使用PageHelper进行
mybatis-generator,一对一,一对多,批量更新插入2
使用方法请看博客 http://blog.csdn.net/bandaotixiruiqiang
mybatis中多表连接查询怎么写?
1,想做的是:activity表和activity_task_new表进行关联,并且条件中既有activity表中的条件,也有activity_task_new表中的条件,查询的结果是想查出来activity表中所有的字段 2,解决方法: 第一个步骤:查询的时候在activity表的mapper的文件里面写,这时候入参肯定是activity对应的实体类,怎么使入参里面也有activity_task...
mybatis 多表关联查询时,如果使用resultType作为输出映射时,估计会出现重复数据
mybatis 多表关联查询时,一般建议还是使用把需要关联的表的pojo添加到主表对应的pojo中作为它的属性,这样在mapper.xml文件中可以使用assacition(一对一查询),或者colletion(一对多查询)来使用resultMap作为输出映射。 不过最近我们公司的确使用VO的形式(把所要映射的字段,都写在此vo里面,mapper.xml中使用resultType作为输出映射),...
Mybatis面向接口编程
一、出发点 Mybatis面向接口编程主要解决以下几种问题 1.配置文件中namespce命名空间问题 2.sql关联id问题 3.返回值问题 4.传入参数问题   二、Message.xml配置文件 namespce为接口的全类名 id是接口方法名  parameterType是对应方法的参数类型 返回值有resultMap或resultType决定   &amp;lt;?x...