---------------------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、核心配置文件中的主要标签
(1)select(映射查询语句)
1)
属性:id
描述:在当前命名空间中的唯一标识符,可被用来引用该语句
「可通过 namespace.id 的方式引用当前映射语句」
2)
属性:parameterType
描述:指定参数的 Java 类型,进行参数映射
「该属性是可选的,即 可以省略」
3)
属性:resultType
描述:指定返回结果的 Java 类型,进行结果映射
「该属性是必须的,即 不能省略」
4)
属性:resultMap
描述:指定外部 resultMap 标签的 id,进行结果映射
注意:
1)parameterType 可省略不写,MyBatis 将自动进行参数映射
2)使用 resultType 时,如果是集合情形,那应该是集合包含的类型,而不能是集合本身
3)同一条映射语句中,resultType 和 resultMap 不能同时使用
(2)insert(映射插入语句)、update(映射更新语句)
1)
属性:useGeneratedKeys
描述:是否开启数据库自增主键回填,即 将 keyColumn 的字段
回填到 keyProperty 的属性中
2)
属性:keyProperty
描述:定义数据库中自增主键的字段名
3)
属性:keyColumn
描述:定义实体类中对应自增主键的属性名
注意:
1)以上三个属性仅对 insert 和 update 有用
2)当需要在 insert 和 update 中开启自增主键回填时,以上三个属性都要配置
3)当 keyProperty 和 keyColumn 一致时,keyColumn 可省略不写,但建议都写
(3)delete(映射删除语句)
除了 useGeneratedKeys、keyProperty、keyColumn 三个属性外,
同 insert、update
(4)resultMap(结果映射)
1)resultMap 是最复杂也是最强大的元素,用来描述如何从数据库结果集
中来加载对象
2)使用 resultMap 可以解决两大问题
<1>表中字段名和实体类属性名不一致的问题
<2>完成高级结果映射(也称 高级查询),如:一对一、一对多、多对多
3)属性:id、type、autoMapping(默认开启)
4)resultMap 可以通过 extends 属性进行继承、扩展
(4)sql(可重用语句块)
用于定义可重用的 SQL 代码段,且可以包含在其它语句中,称为 SQL 片段
可以将公用的 SQL 片段集中写到一个映射配置文件中,在其他的映射配置
文件中,如果想要引用,需要通过 namespace.id 的方式调用
【made by siwuxie095】