Hibernate面试题

      一.谈一谈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);

       

原文地址:https://www.cnblogs.com/hyjj/p/5776123.html