Mybatis 注解原理及使用
注解
注解和XML区别
xml:
xml使用标签,蓝色框:namespace
找到映射的接口的位置,findAll
找到对应的方法。
红色框:查询所用语句,resultMap
返回值格式,sql语句
超找对应数据。
注解:
红色蓝色框对应xml中相同部分,蓝色框找到对应的类和方法,红色框查找并返回包装好的数据。
注解多表查询
@Results注解
当数据库中的列名和用户的变量名不同时,使用@Results
注解对参数进行转换。红色部分,其中:
-
@Results
注解中id
表示注解名,用于第二次调用@ResultsMap
注解时,直接输入id,就不用重复定义了 -
value
时对名称之间对应关系的定义,它又包含了@Result
注解
@Result注解
对每一个变量的对应关系进行解释,图中蓝色部分:
-
id
代表是否为主键,是则写true
,否则默认为false不用谢 -
column
对应数据库属性名 -
property
对应对象变量名 -
@one
和@many
注解:包含在@Result
注解中,用来表示多表查询之间的关系,@one
表示对应一个,@many
表示对应多个。
@[email protected]注解
表示多表之间对应关系,绿色部分:
- 该
@Result
注解,property表示Account对象中的Employee对象名,column表示对应主键。 -
select
变量,对应,使用eid
主键,对employee对象进行查找时使用的方法,并且是全限定类名加方法dao.EmployeeMapper.selectById
-
fetchType
:表示立即加载EAGER
还是延迟加载LAZY
@One:
@Many:
开启二级缓存
只需一步开启二级缓存,在接口前加注释@CacheNamespace
,其中blocking
默认值为false,改为true即开启。