注解
注解和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即开启。