zoukankan      html  css  js  c++  java
  • 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】

  • 相关阅读:
    闪回还原点解析
    先有鸡还是先有蛋的争论
    Android缓存处理
    hdu 1398 Square Coins (母函数)
    JSON具体解释
    【LeetCode】String to Integer (atoi) 解题报告
    【Linux探索之旅】第一部分第四课:磁盘分区,并完毕Ubuntu安装
    MySQL排序:SELECT ORDER BY
    架构师速成7.3-devops为什么非常重要
    升级Linux内核导致vmware无法使用(vmnet模块无法编译)解决方式
  • 原文地址:https://www.cnblogs.com/siwuxie095/p/8372928.html
Copyright © 2011-2022 走看看