Mybatis是否支持延迟加载

83 阅读1分钟

Mybatis支持延迟加载,但默认没有开启。

延迟加载的意思:在需要用到数据时才进行加载,不需要用到数据时就不加载数据。

Mybatis支持一对一关联对象和一对多管理集合对象的延迟加载

在Mybatis配置文件中,可以配置是否启用延迟加载lazyLoadingEnabled=true,默认是关闭的

延迟加载的底层原理

1、使用CGLIB创建目标对象的代理对象

2、当调用目标方法时,进入拦截器invoke方法,发现目标方法是null值,执行sql查询

3、获取数据以后,调用set方法设置属性值,再继续查询目标方法,就有值了