SQL映射文件
SQL映射文件中的几个顶级元素介绍:
mapper:SQL 映射文件的根元素。
cache:为给定命名空间配置缓存。
cache-ref:引用其他命名空间中的缓存配置。
resultMap:用来描述查询结果集中的字段和 Java 实体类属性的对应关系。
sql:定义可重用的 SQL 语句块,可以在其他语句映射中引用,提高编写和维护 SQL 语句的效率。
insert:映射 insert 语句。
update:映射 update 语句。
delete:映射 delete 语句。
select:映射 select 语句。
MyBatis 框架支持面向接口的 SQL 映射编程,这种情况下,SQL 映射文件的开发需要注意以下规则:
(1)习惯上,SQL 映射文件与该 Mapper 接口同名(实体类名+ Mapper ),并放置在同一包路径下。
(2)以要映射的 Mapper 接口的完全限定名()即包含包名的完整名称)作为 namespace 属性的值。
(3)接口中的方法名与映射文件中 SQL 语句映射的 ID 一 一对应。MyBatis 框架通过 namespace + ID 确定和接口方法绑定的 SQL 语句。
(4)在不同的 SQL 映射文件中,子元素的 ID 可以相同。
MyBaits 多参数入参的几种方式:
1.将查询条件装成 Java 对象作为入参
2.将查询条件封装成 Map 对象作为入参
3.使用 @Param 注解实现多参数入参
嵌套结果映射
1. association 元素的主要属性:
property:实体类中用来映射查询结果子集的属性。
javaType:proprty 指定的集合属性中的元素的数据类型,可以使用 Java 完全限定类名或别名。
association 元素包含以下子元素
id。
result。
2.collection 元素的常用属性:
property:实体类中用来映射查询结果子集的集合属性。
ofType:property 指定的集合属性中的元素的数据类型,可以使用Java完全限定类名或别名。
小结:
从数据库表关系的角度来讲,assicuation 元素用于映射一对一或多对一关系,而 collection 元素用于映射一对多关系。
MyBatis框架的缓存
MyBatis框架的缓存分为两个级别
1.一级缓存
MyBatis 框架的一级缓存是基于 PerpetualCache 的 HashMap 本地缓存,默认是 SqlSession 的级别的缓存,在 SqlSession 的一个生命周期内有效。
2.二级缓存
二级缓存是 SqlSessionFactory 级别的,其作用域超出了一个 SqlSession 的范围,缓存中的数据可以被所有 SqlSession 共享。