MyBatis学习笔记-08.MyBatis动态Sql语句foreach的collection的用法以及用foreach实现批量删除与批量新增

这篇博客详细介绍了MyBatis动态SQL中的foreach元素,包括它的使用场景和如何实现批量删除与批量新增。示例中展示了如何处理Integer数组、Map和包含实体类的List,通过配置映射文件和测试程序,解释了collection属性的用法,强调了在不同数据类型下collection的指定规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

续上篇:MyBatis学习笔记-07.MyBatis动态Sql语句if、where、trim、set

本次将继续记MyBatis动态Sql语句的choose和foreach:

一、choose(较少应用):

有时我们不想应用到所有的条件语句,而只想从中择其一项。针对这种情况,MyBatis 提供了 choose 元素,它有点像 Java 中的 switch 语句。这里我们以mybatis官方文档中给出的例子简单看。需搭配when标签元素、otherwise标签元素

<select id="findActiveBlogLike"
     resultType="Blog">
  SELECT * FROM BLOG WHERE state = ‘ACTIVE’
  <choose>
    <when test="title != null">
      AND title like #{title}
    </when>
    <when test="author != null and author.name != null">
      AND author_name like #{author.name}
    </when>
    <otherwise>
      AND featured = 1
    </otherwise>
  </choose>
</select>

<think>好的,我现在需要帮助用户找到MyBatis 3 Mapper的DTD文件的位置或内容。首先,用户提到的引用[1]中提到了在Eclipse中创建MyBatis相关的XML文件时需要包含特定的DOCTYPE声明,比如: `<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">` 这说明用户已经知道DTD的公共标识符和URL,但可能想确认这个DTD的具体内容或者本地存储位置。 接下来,我需要回忆MyBatis的文档结构。通常,DTD文件用于定义XML文档的结构。MyBatis的Mapper XML文件遵循特定的DTD,这个DTD可能托管在mybatis.org的服务器上,供在线访问。但用户可能想知道是否有本地的副本,或者如何获取DTD的内容。 查看其他引用,比如引用[3]和[4]提到了MyBatis的配置和生成器,但并没有直接涉及DTD的内容。引用[5]讨论了mapper标签的配置和解析过程,可能涉及DTD的结构,但具体内容还是需要直接查看DTD文件。 可能的解决步骤包括: 1. 直接访问提供的URL:http://mybatis.org/dtd/mybatis-3-mapper.dtd,查看是否能下载或查看DTD内容。 2. 检查MyBatis的官方文档或源码仓库,是否有DTD文件的定义。 3. 如果用户需要在本地配置DTD,以便在IDE中验证XML,可能需要下载该DTD并配置到Eclipse或其他IDE中,如引用[1]所示。 根据经验,MyBatis的DTD文件通常托管在官方网站,用户可以直接通过URL访问。此外,MyBatis的GitHub仓库可能也包含这些DTD文件。需要确认该URL是否有效,并检查内容是否符合预期。 另外,考虑到用户可能在使用Eclipse时需要本地DTD文件来避免网络请求,可以建议用户将DTD文件下载到本地,并在IDE中配置路径,这样在编写XML时就不会依赖网络连接。引用[1]提到的方法可能涉及在Eclipse中设置DTD的本地位置。 总结,用户的问题可以通过直接访问提供的URL获取DTD内容,或者从MyBatis的源码仓库中找到相关定义。此外,指导用户如何在IDE中配置本地DTD引用也是一个有用的信息点。</think>### MyBatis 3 Mapper DTD 文件位置及内容 MyBatis 3 Mapper DTD 文件用于定义 Mapper XML 文件的结构,确保标签和属性的合法性。以下是其位置和内容获取方式: 1. **在线访问 DTD 文件** 通过公共标识符或直接 URL 访问: ```xml <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> ``` - 直接访问 URL:[http://mybatis.org/dtd/mybatis-3-mapper.dtd](http://mybatis.org/dtd/mybatis-3-mapper.dtd) 可查看完整的 DTD 定义[^1]。 2. **本地配置 DTD(适用于 IDE 离线验证)** 若需在 Eclipse 等 IDE 中离线使用,可按以下步骤操作: - 下载 DTD 文件:从上述 URL 保存 `mybatis-3-mapper.dtd` 到本地目录。 - 配置 Eclipse: 1. 打开 `Window > XML > XML Catalog`。 2. 添加新的条目,关联公共标识符 `-//mybatis.org//DTD Mapper 3.0//EN` 本地文件路径。 3. **DTD 核心内容(节选)** ```dtd <!ELEMENT mapper (cache-ref | cache | resultMap* | parameterMap* | sql* | insert* | update* | delete* | select* )+> <!ATTLIST mapper namespace CDATA #IMPLIED > <!ELEMENT select (#PCDATA | include | trim | where | set | foreach | choose | if | bind)*> <!ATTLIST select id CDATA #REQUIRED parameterType CDATA #IMPLIED resultType CDATA #IMPLIED ... > ``` 完整内容需通过上述 URL 查看。 --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值