Hibenate中一级缓存,也叫做session的缓存!
一、面试题1: 不同的session是否会共享缓存数据?
1、代码分析:
2、分析:
不会,因为生成2条update的sql语句, 说明不同的session使用不同的缓存区,不能共享。
二、面试题2: iterator与list查询的区别?
1、Iterator
1)N+1查询:N表示所有的记录总数
即会先发送一条语句查询所有记录的主键(1),再根据每一个主键再去数据库查询(N)!
2)会放入缓存,也会从缓存中取数据!
2、list()
1)一次把所有的记录都查询出来。
2)会放入缓存,但不会从缓存中获取数据!
a)代码验证1:
b)代码验证2: