129.Hibernate总结

1.Transaction.commit方法执行的时候默认执行session.flush方法,发出sql语句。

2.一个Transaction(事务)对应一个Session,Session关闭,该事务也结束了。

查询缓存 [相同的查询只查一次,第一次查询后就保存在二级缓存中]

  1. 开启查询缓存

129.Hibernate总结

  1. 测试代码如下:

129.Hibernate总结

看似查了两次,但是SQL语句只发出一条。

总结:  1.查询缓存是建立在二级缓存之上的。

2.二级缓存不是默认开启的,需要设置。

129.Hibernate总结

3.还需要在代码中设置。129.Hibernate总结

作业:利用Debug一步步分析

129.Hibernate总结

问题1解答:

129.Hibernate总结

方法list和iterate两个方法获取出来的结果是相同的,但是两个效率却不一样,仔细看SQL语句会发现:list一条SQL搞定,iterate需要每个班级都执行一条SQL查询

【list方法SQL语句】

129.Hibernate总结

【iterate方法SQL语句】

129.Hibernate总结

问题2解答:

129.Hibernate总结

在设置最多显示N条和第N+1条开始显示之前得到的数据如图

129.Hibernate总结

在设置之后

129.Hibernate总结

说明query.setMaxResults(n); //每次最多显示n

   query.setFirstResult(n);//从第n+1条数据开始显示