0 0

mybatis多表插入问题5

刚开始学习mybatis,不太清楚多表关联的情况下如何插入记录,希望大家能不吝赐教。
比如在一个项目的购物车设计中,有一个购物车cart类和购物车条目cartItem类,其中cart的主键是cartItem中的外键,cartItem内有商品Cloth的属性,请问如果要往购物车内插入一条数据应该怎么在配置文件中写insert呢?
以下是cartMapper.xml的resultMap
<resultMap type="Cart" id="cartResultMap">
		<id property="cartId" column="cart_id"/>
		<association property="user" column="user_id" 
			resultMap="com.test.mapper.UserMapper.userResultMap"/>
		<collection property="cartItemList" column="cart_id" 
			javaType="ArrayList" ofType="CartItem" 
			resultMap="com.test.mapper.CartItemMapper.cartItemResultMap"/>
	</resultMap>

cartItemMapper.xml:
<resultMap type="CartItem" id="cartItemResultMap">
		<id property="cartItemId" column="cart_item_id"/>
		<result property="clothNumber" column="cloth_number" />
		<association property="cart" column="cart_id" 
			resultMap="com.test.mapper.CartMapper.cartResultMap"/>
		<association property="cloth" column="cloth_id"
			resultMap="com.test.mapper.ClothMapper.clothResultMap"/>
	</resultMap>

新手积分比较少,大家莫要嫌弃。。
2014年8月15日 13:01

2个答案 按时间排序 按投票排序

0 0

采纳的答案

CartItem插入的时候,

values(
  #{cartItemId},
  #{clothNumber},
  #{cart.cartId},
  #{cloth.clothId}
)

2014年8月15日 17:16
0 0

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

2014年8月15日 17:05

相关推荐

    Mybatis实现多表联合查询和批量插入

    Mybatis实现多表联合查询和批量插入 Mybatis是一款流行的持久层框架,它可以帮助开发者快速、高效地访问数据库。在实际开发中,经常需要对多个表进行联合查询,或者对大量数据进行批量插入。本文将详细介绍如何使用...

    mybatis动态创建数据库表

    在“mybatis动态创建数据库表”这个主题中,我们将深入探讨如何利用MyBatis实现数据库表的动态创建、数据插入以及数据修改。 一、动态创建数据库表 MyBatis本身并不直接支持动态创建数据库表,但可以通过结合Spring...

    使用MyBatis实现表的多对多关联映射查询

    - 插入或更新多对多关系时,需要同时操作主表和关联表。例如,添加一个学生选修的课程,需要先在`students`表中插入学生信息,然后在`student_course`表中插入关联记录。 - 更新时,可能需要删除旧的关联记录,再...

    SpringBoot 整合Mybatis 创建临时表

    下面我们将详细探讨如何在SpringBoot项目中整合Mybatis,以实现创建临时表的功能。 首先,我们需要在SpringBoot项目中引入Mybatis的相关依赖。在`pom.xml`文件中,添加如下Mybatis和其Spring Boot Starter的依赖: ...

    mybatis多表上课代码.zip

    XML 映射文件是 MyBatis 中定义 SQL 语句的地方,其中可以包含单表查询、插入、更新、删除等操作,同时也支持多表关联查询。在 `springboot03` 这个目录中,可能包含了多个实体类(Entity)以及对应的映射文件...

    mybatis根据表逆向生成pojo和mapper

    "mybatis根据表逆向生成pojo和mapper"是一个功能,可以帮助开发者快速地根据数据库中的表结构自动生成对应的Java实体类(POJO)和MyBatis的Mapper接口及XML映射文件,极大地提高了开发效率。 逆向工程(Reverse ...

    Mybatis代码插入工具

    【Mybatis代码插入工具】是一种基于Java开发的实用工具,用于简化Mybatis框架中的SQL映射文件和Mapper接口的创建过程。它通过自动化的方式,帮助开发者快速生成与数据库表结构对应的实体类、Mapper接口以及XML配置...

    mybatis 一对多

    对于一对多的插入操作,MyBatis提供了`collection`标签的`foreach`子标签,可以在插入用户的同时插入其关联的订单。例如,在`UserMapper.xml`中添加一个`insertUserWithOrders`方法: ```xml INSERT INTO users ...

    mybatis中批量插入的两种方式(高效插入)

    在这个例子中,`insertBatch` 方法接受一个`List` 类型的参数,`foreach` 循环遍历列表,将每个元素插入到`TStudent` 表中。 ### 2. MyBatis `ExecutorType.BATCH` MyBatis 提供了三种执行器类型:`SIMPLE`、`...

    mybatis 批量插入 嵌套select.pdf

    这个问题的描述是关于如何在MyBatis中正确地执行一个批量插入操作,其中一个字段的值依赖于对同一张表的SELECT查询结果。 原始的XML映射文件中的SQL插入语句尝试在FROM子句中直接更新目标表'chat_messages',这是不...

    mybatis连接MySQL8出现的问题解决方法

    MyBatis逆向工程是一个强大的工具,它可以根据数据库表生成MyBatis的映射文件和实体类。但是,在使用MyBatis逆向工程时,需要注意MySQL8的版本问题。如果使用的是MySQL8,需要升级mysql-connect-java版本,以避免...

    MyBatis的项目。实现增删改查,以及多表联查和对标签的使用。批量删除。

    在本项目中,我们将深入探讨MyBatis如何实现增删改查(CRUD)操作,多表联查,以及标签(Tags)的使用,并涵盖批量删除的功能。以下是关于这些主题的详细讲解。 1. **增删改查(CRUD)操作**: - **创建(Create)...

    mybatis框架自动生成工具

    MyBatis框架自动生成工具是开发过程中非常实用的辅助软件,尤其对于初学者而言,它极大地简化了数据库操作和实体类、Mapper接口、XML配置文件的编写工作。这个工具能够根据数据库表结构自动生成对应的Java代码,使得...

    Mybatis实现一对一,一对多数据插入数据实验报告.docx

    【Mybatis实现一对一,一对多数据插入数据】 在软件开发中,尤其是在涉及到数据库操作时,数据关系的处理是非常关键的一部分。Mybatis,一个优秀的持久层框架,提供了方便的方式来处理复杂的数据关系,包括一对一和...

    SpringBoot整合Mybatis连接SQL Server 跨库批量插入

    本篇将深入探讨如何在Spring Boot项目中整合Mybatis,实现对SQL Server数据库的跨库批量插入操作。 首先,我们需要在Spring Boot项目中引入相关的依赖。对于Mybatis的支持,我们需要添加Mybatis和其Spring Boot ...

    mybatis关联查询问题(一对多、多对一)

    在这个场景中,"mybatis关联查询问题(一对多、多对一)"是核心关注点,这涉及到数据库设计中的关系映射以及在Mybatis中如何处理这些关系。 1. **一对多关联**: 在数据库设计中,一对多关联是指一个表中的记录可以...

    Mybatis排序无效问题解决.doc

    ### Mybatis排序无效问题解决 #### 问题背景与概述 在使用Mybatis框架进行数据库操作时,有时会遇到排序功能无法正常工作的现象。本篇文章旨在深入解析这一问题,并提供有效的解决方案。 #### 问题描述 在实际...

    Mybatis多对多关联映射源码

    Mybatis支持级联插入、更新和删除,这意味着在操作主要实体时,可以同时处理关联的多对多关系。通过`cascade`属性,我们可以指定哪些操作需要级联。 7. **性能优化** 为了提高性能,可以考虑使用`&lt;resultMap&gt;`的`...

    mybatis 获取mysql插入记录的自增长字段值.pdf

    这个机制对于需要跨表关联的场景特别有用,比如在上述例子中,当我们在订单表中插入客户信息后,可以获取到新生成的订单ID,并将其保存到商品信息表中,作为关联外键。这样,我们就能建立订单与商品之间的关系,实现...

    postgresql + mybatis传入时间参数的问题.md

    我们看到, 直接在可视化工具里用SQL写 ccf.last_update_timestamp between TIMESTAMP '2019-12-13' AND TIMESTAMP '2019-12-13' 甚至去掉 TIMESTAMP 都是可以的, pgSQL可以自动把字符串给你转换成日期格式, ...

Global site tag (gtag.js) - Google Analytics