文章目录
SQL映射的XML文件
mapper
select
parameterType
resultMap
select 小结
insert
update
delete
resultMap
association
collection
SQL映射的XML文件
- MyBatis 真正的强大在于映射语句,专注于SQL,功能强大,SQL映射的配置却是相当简单
- SQL映射文件的几个顶级元素(按照定义的顺序)
mapper – namespace cache – 配置给定命名空间的缓存 cache-ref – 从其他命名空间引用缓存配置 resultMap –用来描述数据库结果集和对象的对应关系 sql – 可以重用的SQL块,也可以被其他语句引用 insert – 映射插入语句 update – 映射更新语句 delete – 映射删除语句 select – 映射查询语句
mapper
namespace:命名空间
- namespace和子元素的id联合保证唯一,区别不同的mapper
- 绑定DAO接口
- namespace的命名必须跟某个接口同名
- 接口中的方法与映射文件中SQL语句id一一对应
select
- select是MyBatis中最常用的元素之一
- select语句有很多属性可以详细配置每一条语句
id 命名空间中唯一的标识符 接口中的方法与映射文件中的SQL语句id一一对应 parameterType 传入SQL语句的参数类型 resultType SQL语句返回值类型的完整类名或别名
parameterType
基础数据类型 int、String、Date等 只能传入一个,通过#{参数名}即可获取传入的值 复杂数据类型 Java实体类、Map等 通过#{属性名}或者#{map的keyName}即可获取传入值
resultMap
resultType :直接表示返回类型
- 基本数据类型
- 复杂数据类型
resultMap :对外部resultMap的引用
应用场景:
- 数据库字段信息与对象属性不一致
- 复杂的联合查询,自由控制映射结果
二者不能同时存在,本质上都是Map数据结构
select 小结
insert
insert
- id
- parameterType
update
注意:超过3个以上的参数最好封装成对象入参,参数固定的业务方法,最好使用多参数入参。
delete
resultMap
resultMap属性
- id:resultMap的唯一标识
- type:Java实体类
resultMap子元素
- id:一般对应数据库中该行的主键id,设置此项可提高MyBatis性能
- result:映射到JavaBean的某个“简单类型”属性
- association:映射到JavaBean的某个“复杂类型”属性,比如JavaBean类
- collection:映射到JavaBean的某个“复杂类型”属性,比如集合
association
collection