mybatis文件映射之利用延迟加载解决分布查询每次查询Employee时都得查Department(四)
之前关联查询时,每次查Employee时都会带上Department,现在我们想当只有需要查Department时才去查找它,可以使用延迟加载。
在mybatis配置文件中配置:
<settings>
<setting name="lazyLoadingEnabled" value="true"/>
<setting name="aggressiveLazyLoading" value="false"/>
</settings>
此时再利用上节的分布查询的代码进行测试,只不过在测试时:如果我们只是要打印lastName:
Employee employee = mapper.getEmpByIdStep(3);
System.out.println(employee.getLastName());
输出:
DEBUG 01-20 15:04:34,894 ==> Preparing: select * from tbl_employee where id=? (BaseJdbcLogger.java:145) DEBUG 01-20 15:04:35,016 ==> Parameters: 3(Integer) (BaseJdbcLogger.java:145) DEBUG 01-20 15:04:35,245 <== Total: 1 (BaseJdbcLogger.java:145) 小红
假设我们要打印dept:
Employee employee = mapper.getEmpByIdStep(3);
System.out.println(employee.getDept());
输出:
DEBUG 01-20 15:05:00,830 ==> Preparing: select * from tbl_employee where id=? (BaseJdbcLogger.java:145) DEBUG 01-20 15:05:00,872 ==> Parameters: 3(Integer) (BaseJdbcLogger.java:145) DEBUG 01-20 15:05:01,047 <== Total: 1 (BaseJdbcLogger.java:145) DEBUG 01-20 15:05:01,049 ==> Preparing: select * from tbl_department where id=? (BaseJdbcLogger.java:145) DEBUG 01-20 15:05:01,050 ==> Parameters: 1(Integer) (BaseJdbcLogger.java:145) DEBUG 01-20 15:05:01,053 <== Total: 1 (BaseJdbcLogger.java:145) Department [id=1, deptName=开发部]
发现没,当我们使用了延迟加载后,当我们不使用Deparment时,只会发送一条sql语句。
- poj 1088 滑雪
- 八数码难题解法大全
- React第三方组件5(状态管理之Redux的使用⑥Redux DevTools)
- React第三方组件5(状态管理之Redux的使用⑤异步操作)
- HDU - 1846 Brave Game
- React多页面应用4(webpack4 提取第三方包及公共组件)
- zoj 2420
- SPOJ NWERC11B Bird tree
- React多页面应用6(gulp自动化发布到多个环境、生成版本号、压缩成zip等)
- SDIBT 1046 Primary Arithmetic
- 洛谷P2415 集合求和
- React多页面应用5(webpack生产环境配置,包括压缩js代码,图片转码等)
- SDIBT 1046 Primary Arithmetic
- React多页面应用4(webpack自动化生成多入口页面)
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释