3 了解MyBatis映射文件

 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>

自动映射原理图

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吾欲乘风归去,又恐琼楼玉宇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值