功能

定义了SQL语句及执行该语句的方法名、参数、SQL类型至Java类型的转换等

生命周期

Mapper由SqlSession获得,表示一条SQL的执行,只是一条请求

定义Mapper

Mapper可由接口和/或配置文件组成

Mapper接口

  • 是一个普通的接口文件,定义了每个SQL执行语句的方法名和参数
  • SQL语句及参数可由注解定义,也可由对应的配置文件定义
  • 没有具体的实现类(实现类由MyBatis自动实现)

Mapper配置文件

参见: https://mybatis.org/mybatis-3/zh/sqlmap-xml.html

1
2
3
4
5
6
7
<?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="Mapper接口全限定名">
<语句类型 id="方法名" parameterType="参数类型">
SQL语句
</语句类型>
</mapper>

可选的类型有sqlselectinsertupdatedeletecache

公用属性 默认值 说明 其他
id 方法名
parameterType 参数类型 也可以是类型全限定名或别名
databaseId 数据库厂商标志 用于兼容不同数据库
flushCache select为false; insert、update、delete为true 是否在调用该语句后清空本地缓存和二级缓存
statementType PREPARED 使用的语句执行类 可选值为 STATEMENT | PREPARED | CALLABLE
timeout 数据库驱动决定 超时时间(秒)