Mybatis的Mapper映射文件中的常用标签(待修改)

83 阅读3分钟

Mybatis是什么?

  • 一个框架:能够帮助我们实现B/S架构开发,提供快速编写的一个半成品软件

  • 一个优秀的开源的,基于ORM思想封装的,支持自定义SQL的半自动持久层框架, 底层就是JDBC

Mybatis中的Mapper映射文件常用的一些标签

  • insert: 插入语句的定义,需要 idparameterType 属性。
  • delete:删除语句的定义,需要 idparameterType 属性
  • update:更新语句的定义,需要 idparameterType 属性
  • select:定义查询语句,用来从数据库中获取数据。需要指定 id(唯一标识符),parameterType(输入参数类型),resultType(返回值类型)等属性
  • otherwise:作为 choose 的一部分,当所有 when 条件都不匹配时执行的 SQL 片段。
  • where:动态添加 WHERE 子句,会自动处理 WHERE 关键字前的 AND 或 OR。
  • set:动态添加 SET 子句,当更新语句中需要有条件地设置字段时使用。
  • id:在 resultMap 中定义唯一标识符,通常用于主键字段。
  • resultMap
    查询回显
    在这种一对多的查询中,我们要想成功的封装的结果,需要手动的基于 <resultMap> 来进行封装结果。
    • Mybatis中封装查询结果,什么时候用 resultType,什么时候用resultMap ?
      如果查询返回的字段名与实体的属性名可以直接对应上,用resultType。 如果查询返回的字段名与实体的属性名对应不上,或实体属性比较复杂,可以通过resultMap手动封装 。
  • if:动态 SQL 中用于条件判断
  • foreach:当需要遍历集合时使用,如批量插入
  • trim :处理 SQL 语句中的多余的空格或换行,常用于动态构建 SQL 语句。 提供了更灵活的文本处理能力,可以处理SQL语句的前缀和后缀。
  • sql:用于定义可重用的 SQL 代码片段,通常与 <include> 配合使用。
  • include:用于引用 SQL 片段,允许重用 SQL 代码。
  • parameter:参数映射,虽然 <select>, <insert>, <update><delete> 元素可以包含 <parameter> 子元素来定义参数映射规则,但是通常不需要显式使用此元素,因为可以使用 #{} 占位符方式传递参数
  • mapper:这是根元素,每一个 <mapper> 标签代表一个接口的映射信息,需要指定 namespace 属性来唯一标识这个接口
  • cache:用于开启二级缓存,并配置缓存实现类和其他相关属性
  • discriminator: 用于区分不同类型的对象,在 resultMap 中使用,可以根据某个字段的不同值映射不同的子对象或者子结果集。
  • association: 在 resultMap 中定义一对一关联关系。
  • collection:在 resultMap 中定义一对多关联关系。
  • lazyLoad:控制是否懒加载关联对象,默认情况下 MyBatis 支持延迟加载。
  • plugins:可以定义拦截器插件,用来扩展 MyBatis 的功能。
  • environment:虽然这不是一个直接位于 mapper 文件内的标签,但它可以在 MyBatis 的主配置文件中定义不同的环境设置,如不同的数据库连接信息,这可以通过 <mapper> 标签中的 environment 属性来引用
  • constructor:用于 resultMap 中定义对象构造函数的参数注入。 autoMapping:自动映射开关,可以控制自动映射的行为。
  • bind:用于绑定一个变量名到一个表达式的值,可以在 SQL 中复用。
  • dynamic:动态 SQL 的容器,可以包含 if、choose、where、set 等子元素来构建动态 SQL。
  • ...