Mybatis——懒加载(延迟加载)
我们在做关联查询之后,默认懒加载是没有开启的,如果我们的查询没有用到被关联表的信息,没有懒加载也是会把被关联表里的内容查出来的,这必然是浪费了资源,我们开启懒加载之后,只有使用该表的内容的时候,mybatis才会调用查询语句。 配置的时候,在映射表的时候,在我们想要执行懒加载的对应的映射处加入"fetchType"属性,值为lazy(懒加载),eager(立即加载,默认)。我们来看看效果
public class Account { private Integer id; private String name; private Float money; private Integer u_id; private User user; } public class User { private Integer id; private String username; private String password; private String address; private Date birthday; private String sex; }
当我们只需要获取account类里面的属性的时候,是没有去user表里面查询内容的,当我们关闭lazy之后,看看是什么情况。 很明显,这里我也只是查询了account的名字,但是他还给把关联的user表中的内容查询了一遍,虽然没有打印出来,但是也是造成了资源浪费。
全局配置
如果我们很多地方都要设置懒加载,那么我们就可以在mybatis-config.xml中的settings标签中设置全局懒加载。 当我们设置全局懒加载之后,肯定是有些地方不需要懒加载,那么我们就可以用fetchType属性设置为eager来覆盖全局懒加载。
下一篇:
负载均衡算法:一致性哈希