一.谈一谈Hibernate的缓存机制
1.一级缓存:
内部缓存存在于HIbernate中又叫一级缓存,他属于应用事务级缓存。
2.二级缓存:
01.应用级缓存。
02.分布式缓存。
条件:数据不会被第三方修改,数据大小在可接受范围,数据更新频率低,同一数据库被系统频繁使用,非关键数据。
3.第三方缓存的实现。
二.Hibernate与JDBC的联系
HIbernate是JDBC的轻量级封装,包括JDBC与数据库的连接(用Hibernate.property的配置文件实现,其实本质上是封装了JDBC的forname),和查询 ,删除等代码,都用面向对象的思想用代码联系起来,Hibernate通过hbm配置文件把po类的字段和数据库的字段关联起来比如数据库的ID。在面向对象中就对应的就是:
private Login id; public Long getId(); public setId(Long id);
然后hql语句也是面向对象的,它的查询语句不是查询数据库而是查询类的,这些实现都是通过xml文件,其实到最后Hibernate=封装的jdbc+xml文件。
三.Hibernate自带的分页机制是什么?如果不使用Hibernate自带的分页,则采用什么方式分页?
1.Hibernate自带的分页机制:获得Session对象后,从Session中获取Query对象。用Query.setFirstResult();设置要显示的第一行数据,
Query.setMaxResult();设置要显示的最后以上数据。
2.不使用Hibernate自带的分页,可采用了sql语句分页:
eg:每页显示两条记录,查询第五页数据:
select * top 5 from table where tabId not in(select tabId top(2-1)*5 from table);