1.延迟加载和立即加载的概念
延迟加载:即懒加载,在查询时只有需要用到的数据才会加载出来,否则就不会进行加载;适用于一对多和多对多的查询;
立即加载:在查询时,会将所有数据加载出来;适用于多对一和一对一查询;
2.什么是mybatis的一级缓存和二级缓存
一级缓存:是Mybatis中SqlSession对象的缓存;存入缓存的数据是以Map结构存入的;SqlSession对象消失时,缓存被销毁;
在进行增删改时,会触发一级缓存的清空机制,自动清空一级缓存里的数据;
二级缓存:Mybatis中SqlSessionFactory对象的缓存;
存放的是数据,不是对象,在拿取数据时会创建一个对象来存放数据;
3.Mybatis如何使用注解开发的(如何配置)
CRUD注解:直接在Dao接口的方法上添加对应的注解:
查询:@Select("SQL语句");
增加:@Insert("SQL语句");
修改:@Update("SQL语句");
删除:#Delete("SQL语句");
别名注解:在CRUD注解下添加注解:
@Results:别名注解
id:标识
value:给各属性名设置别名
@Result:开始设置别名,一个属性名一个Result
id:true(主键),false(非主键,默认值可不写);
column:别名(要和列名一致);
property:属性名;
复用:
@ResultMap(value = {“标识”})
简写:@ResultMap(“标识”)
多表注解:在别名注解的@Result进行配置:
一对一(一对多)注解:
@Result:建立主表实体类内从表属性对象与数据库表列名的对应关系
column:传递到查询从表属性对象的方法的参数
property:从表对象属性名
one=@One:代替映射配置文件的assocation 标签
select:方法全路径名(查询从表属性对象的方法)
fetchType:加载时机
FetchType.LAZY:延迟加载
FetchType.EAGER:立即加载
FetchType.DEFAULT:默认值,默认为立即加载
多对一(多对多)注解:
@Result:建立主表实体类内从表属性集合与数据库表列名的对应关系
column:传递到查询从表属性集合的方法的参数
property:对象属性集合名
one=@One:代替映射配置文件的assocation 标签
select:方法全路径名(查询从表属性集合的方法)
fetchType:加载时机
FetchType.LAZY:延迟加载
FetchType.EAGER:立即加载
FetchType.DEFAULT:默认值,默认为立即加载 |