129.Hibernate总结
1.Transaction.commit方法执行的时候默认执行session.flush方法,发出sql语句。
2.一个Transaction(事务)对应一个Session,Session关闭,该事务也结束了。
查询缓存 [相同的查询只查一次,第一次查询后就保存在二级缓存中]
- 开启查询缓存
- 测试代码如下:
看似查了两次,但是SQL语句只发出一条。
总结: 1.查询缓存是建立在二级缓存之上的。
2.二级缓存不是默认开启的,需要设置。
3.还需要在代码中设置。
作业:利用Debug一步步分析
问题1解答:
方法list和iterate两个方法获取出来的结果是相同的,但是两个效率却不一样,仔细看SQL语句会发现:list一条SQL搞定,iterate需要每个班级都执行一条SQL查询
【list方法SQL语句】
【iterate方法SQL语句】
问题2解答:
在设置最多显示N条和第N+1条开始显示之前得到的数据如图
在设置之后
说明query.setMaxResults(n); //每次最多显示n条
query.setFirstResult(n);//从第n+1条数据开始显示