3.1 认识映射文件:

介绍:
    MyBatis的映射文件主要用于定义业务操作命令,实现对象与数据表字段的映射,并控制对最终结果的封装.MyBatis是针对SQL构建,相对具有相同功能的JDBC代码,减少了95%的代码量
说明:

  1.     映射文件名称和位置任意,不要求必须与POJO类在同一位置
  2.     MyBatis未提供源码和案例,配置和映射内容参考官网或使用指南
  3.     MyBatis映射文件顶层结构如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">


基本格式:


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="匿名空间">
    <select/insert/update/delete等等 id="业务标识名" resultType="封装结果的对象[实体类全名]" parameterType="占位符的来源">
        SQL命令
    </select/insert/update/delete等等>
</mapper>


说明:

  1.     namespace: 表示命名空间,类似Java包的作用.[在旧版中可选,在新版中必须配置]
  2.     id: 设置业务操作匿名,方便程序中调用.
  3.     parameterType: 指出将要传入SQL命令中的占位符的类型,可以是普通类型或自定义类.
  4.     resultType: 指出SQL命令执行结果的类型.若结果为集合,该属性值为元素的类型名.
  5.     statementType: 设置SQL执行对象的类型: STATEMENT,PREPARED[默认值],CALLABLE.
  6.     SQL命令末尾后的分号,可选

3.2 占位符:

介绍:
    Mybatis映射文件中的SQL命令,支持以占位符方式设置字段的值.同JDBC那样,当执行SQL命令时需要额外指出占位符的值.

格式:
    #{占位符名}

说明:

  1. 占位符的值可以来自实体对象,Map集合,普通数据
  2. 若占位符的值来自普通数据,占位符名 任意. [仅1个占位符,比如 id]
  3. 若占位符的值来自实体对象,占位符名 必须为对象的属性名
  4. 若占位符的值来自Map集合,占位符名 必须为键名

3.3 结果映射

介绍:
    MyBatis自动将POJO对象的属性与查询结果集中字段名或添加/修改/删除中占位符名映射,实现对象与表的映射关系.
    同时,MyBatis提供了手动设置POJO对象属性与执行结果映射的方式: <resultMap>.

解决字段名与属性名不同,无法映射:

方式1: 设置字段匿名——as


select id,username as name,sex,age,address from user


方式2: 自定义映射——<resultMap>


<select id="" resultType="" resultMap="resultMap匿名A">
        SQL命令
    </select>
    <!--自定义映射规则-->
    <resultMap id="resultMap匿名A" type="实体类全名">
        <id property="主键属性" column="主键字段名" />
        <result property="普通属性" column="字段名" />
    </resultMap>


自动映射原理图

映射出容器里的文件 映射文件格式_mybatis