博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyBatis知识点复习-10懒加载讲解
阅读量:3959 次
发布时间:2019-05-24

本文共 1068 字,大约阅读时间需要 3 分钟。

MyBatis知识点复习-10懒加载讲解

MyBatis懒加载是面试时常问的问题。何为懒加载?就是在需要的时候才去加载,在mybatis中<resultMap>下的<collection>和<association>具有延时加载的功能。温馨提示:本文的内容比较轻松。

文章目录

要想使用懒加载,需要在全局配置文件里面声明可以使用:

然后在OrdersMapper接口中添加下面函数:

public Orders findByLazyLoading(String number);

接着在UserMapper接口里面添加下面函数:

public User findUserById(int user_id);

然后再UserMapper.xml添加下面内容(为懒加载服务):

上面的abcdef是我前面文章已经配置好的一个resultMap

然后再OrdersMapper.xml添加下面内容:

说明:在<association>的配置里面,我们没有采用前面章节的使用它的子标签来配置字段,而是使用了UserMapper.xml里面实现的一个方法findUserById,通过在column属性里面字段值(这里是user_id)作为该函数的参数,借由这个配置好的方法的返回值作为orders的属性user的值。

在Test方法里面测试:

OrdersMapper mapper = sqlSession.getMapper(OrdersMapper.class); Orders byLazyLoading = mapper.findByLazyLoading("1000010"); System.out.println(byLazyLoading); sqlSession.commit();//提交事务,否则会事务回滚

在这里插入图片描述

到这里我么已经明白懒加载就是使用其他的已经实现的方法来封装对象而不是自己在<association>或者<collection>的子标签里面配置。本文开头说了<collection>标签也有懒加载的功能,这里留给读者自己实现。

转载地址:http://lvlzi.baihongyu.com/

你可能感兴趣的文章