• MyBatis映射配置文件详解


    ---------------------siwuxie095

       

       

       

       

       

       

       

       

    MyBatis 映射配置文件详解

       

       

    1、映射配置文件的名称和位置没有固定要求

       

    1)位置:建议在 映射器接口所在包

       

    2)名称:建议为 映射器接口名.xml

       

       

       

    2、核心配置文件的内容全部写在根标签 <mapper>

       

       

       

    3、映射配置文件的内容组成:映射语句(主要)

       

    1)映射插入语句:insert

       

    2)映射更新语句:update

       

    3)映射删除语句:delete

       

    4)映射查询语句:select

       

    其中:

       

    数据查询语句:select,数据变更语句:insert、update、delete

       

    CRUD 操作中,查询操作 select 最常用

       

       

       

       

    4、映射配置文件中包含的元素如下图

       

       

       

       

       

    5、核心配置文件中的主要标签

       

    1select(映射查询语句)

       

    1

       

    属性:id

       

    描述:在当前命名空间中的唯一标识符,可被用来引用该语句

       

    「可通过 namespace.id 的方式引用当前映射语句」

       

       

    2

       

    属性:parameterType

       

    描述:指定参数的 Java 类型,进行参数映射

       

    「该属性是可选的,即 可以省略」

       

       

    3

       

    属性:resultType

       

    描述:指定返回结果的 Java 类型,进行结果映射

       

    「该属性是必须的,即 不能省略」

       

       

    4

       

    属性:resultMap

       

    描述:指定外部 resultMap 标签的 id,进行结果映射

       

       

       

    注意:

       

    1)parameterType 可省略不写,MyBatis 将自动进行参数映射

       

    2)使用 resultType 时,如果是集合情形,那应该是集合包含的类型,而不能是集合本身

       

    3)同一条映射语句中,resultType 和 resultMap 不能同时使用

       

       

       

    2insert(映射插入语句)、update(映射更新语句)

       

    1

       

    属性:useGeneratedKeys

       

    描述:是否开启数据库自增主键回填,即 keyColumn 的字段

    回填到 keyProperty 的属性中

       

       

    2

       

    属性:keyProperty

       

    描述:定义数据库中自增主键的字段名

       

       

    3

       

    属性:keyColumn

       

    描述:定义实体类中对应自增主键的属性名

       

       

       

    注意:

       

    1)以上三个属性仅对 insert 和 update 有用

       

    2)当需要在 insert 和 update 中开启自增主键回填时,以上三个属性都要配置

       

    3)当 keyProperty 和 keyColumn 一致时,keyColumn 可省略不写,但建议都写

       

       

       

       

    3delete(映射删除语句)

       

    除了 useGeneratedKeys、keyProperty、keyColumn 三个属性外,

    同 insert、update

       

       

       

    4resultMap(结果映射)

       

    1)resultMap 是最复杂也是最强大的元素,用来描述如何从数据库结果集

    中来加载对象

       

       

    2)使用 resultMap 可以解决两大问题

       

    <1>表中字段名和实体类属性名不一致的问题

       

    <2>完成高级结果映射(也称 高级查询),如:一对一、一对多、多对多

       

       

    3)属性:id、type、autoMapping(默认开启)

       

       

    4)resultMap 可以通过 extends 属性进行继承、扩展

       

       

       

    4sql(可重用语句块)

       

    用于定义可重用的 SQL 代码段,且可以包含在其它语句中,称为 SQL 片段

       

    可以将公用的 SQL 片段集中写到一个映射配置文件中,在其他的映射配置

    文件中,如果想要引用,需要通过 namespace.id 的方式调用

       

       

       

       

       

       

       

       

       

       

    【made by siwuxie095】

  • 相关阅读:
    在HTML中怎么去掉a标签(超链接)的下划线?
    鼠标移动到表格的TD上的时候显示成一个手型的样子怎么做?
    jackjson 为空的不参与序列号
    java.lang.AbstractMethodError: org.mybatis.spring.transaction.SpringManagedTransaction.getTimeout()
    mysql 索引
    jquery 中 attr 和 prop 区别
    mysql 5.7 版本 windows 安装
    mysql not in 和 not exits
    spring @Configuration
    spring boot 中 事务配置
  • 原文地址:https://www.cnblogs.com/siwuxie095/p/8372928.html
Copyright © 2020-2023  润新知