Java认证考试

请谈谈对Hibernate的理解,并简要叙述Hibernate的一级缓存和二级缓存。

题目

请谈谈对Hibernate的理解,并简要叙述Hibernate的一级缓存和二级缓存。

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

请解释Hibernate3.2主键的生成方式中,native和identity方式的区别。


正确答案: Native主键生成方式会根据不同的底层数据库自动选择Identity、Sequence、Hilo主键生成方式 
Identity当时根据底层数据库,来支持自动增长,不同的数据库用不同的主键增长方式

第2题:

请简要的描述一下使用Hibernate二级高速缓存的经验


正确答案: 1.Hibernate3的二级缓存和session级别的缓存一样都只对实体对象做缓存,不对属性级别的查询做缓存;二级缓存的生命周期和sessionFactory的生命周期是一样的,sessionFactory可以管理二级缓存;
2.sessionFactory级别的缓存,需要手动配置;所有的session可以共享sessionFactory 级别的缓存;(一般把一些不经常变化的实体对象放到sessionFactory级别的缓存中,适合放不经常变化的实体对象。)
3.Hiberante3二级缓存的配置和使用方法如下:
必须把ehcache.jar包导入,然后到Hibernate3.2的etc文件下把ehcache.xml复制到工程src目录下(ehcache.xml里边的参数里边有详细英文说明);
说明:ehcache.jar是第三方法的缓存产品,hiberante只是把它做了集成,还有好多第三方hibernate集成的缓存产品,相关说明请查阅hiberante3开发手册;ehcache是不支持分布应用的,如果有分布式需求,请换成支持分布式的二级缓存产品,hiberate3开发手册都有相头说明。配置方法都类似);
4.Hibernate3的二级缓存默认是开起的,也可以指定开起。

第3题:

下列选项关于Configuration的说法不正确的是()。

  • A、Configuration类的构造方法用于将默认路径下的hibernate.cfg.xml(或hibernate.properties)配置文件中的配置信息读入到内存中
  • B、Configuration对象用于配置并启动Hibernate
  • C、获得Configuration的方法:Configuration config = new Configuration();
  • D、Hibernate应用通过Configuration实例指定对象-关系映射文件的位置或者动态配置Hibernate的属性

正确答案:C

第4题:

请简述MyBatis和Hibernate的区别。


正确答案: 调优方案:
Hibernate的调优方案:
1.制定合理的缓存策略;
2.尽量使用延迟加载特性;
3.采用合理的Session管理机制;
4.使用批量抓取,设定合理的批处理参数(batch_size);
5.进行合理的O/R映射设计
Mybatis调优方案:
MyBatis在Session方面和Hibernate的Session生命周期是一致的,同样需要合理的Session管理机制。MyBatis同样具有二级缓存机制。MyBatis可以进行详细的SQL优化设计。
1、SQL优化方面
Hibernate的查询会将表中的所有字段查询出来,这一点会有性能消耗。Hibernate也可以自己写SQL来指定需要查询的字段,但这样就破坏了Hibernate开发的简洁性。而Mybatis的SQL是手动编写的,所以可以按需求指定查询的字段。HibernateSQL语句的调优需要将SQL打印出来,而Hibernate的SQL被很多人嫌弃因为太丑了。MyBatis的SQL是自己手动写的所以调整方便。但Hibernate具有自己的日志统计。Mybatis本身不带日志统计,使用Log4j进行日志记录
2、扩展性方面
Hibernate与具体数据库的关联只需在XML文件中配置即可,所有的SQL语句与具体使用的数据库无关,移植性很好。MyBatis项目中所有的SQL语句都是依赖所用的数据库的,所以不同数据库类型的支持不好。

第5题:

如何在控制台看到hibernate生成并执行的sql


正确答案: 在定义数据库和数据库属性的文件applicationConfig.xml里面,把hibernate.show_sql 设置为true 这样生成的SQL就会在控制台出现了
注意:这样做会加重系统的负担,不利于性能调优

第6题:

关于Hibernate,下列说法错误的是()

  • A、Hibernate是一个对象-关系映射工具
  • B、在MVC模式中,Hibernate属于控制层
  • C、Hibernate在JDBC的方式上进行封装,以简化JDBC方式繁琐的编码工作
  • D、在Hibernate中,可以通过xml格式的配置文件保存对象-关系的映射信息

正确答案:B

第7题:

下面关于Hibernate说法正确的是()

  • A、Hibernate是ORM的一种实现方式
  • B、Hibernate不要JDBC的支持
  • C、属于控制层
  • D、属于数据持久层

正确答案:A,D

第8题:

Struts+Hibernate+Spring开发模式中Hibernate扮演的角色?


正确答案:Hibernate扮演的是数据持久层 它的作用是实现持久化对象和数据库表之间的映射,形成持久化对象和数据库表中数据的一个转换平台。

第9题:

下面关于Hibernate的说法,错误的是()

  • A、Hibernate是一个“对象-关系映射”的实现
  • B、Hibernate是一种数据持久化技术
  • C、Hibernate是JDBC的替代技术
  • D、使用Hibernate可以简化持久化层的编码

正确答案:C

第10题:

请解释说明hibernate配置文件中dialect属性的确切含义


正确答案:数据库方言:多种数据库拥有不同的语言语法,通过设置dialect指定所用的数据库,并生成对应语法和语言的sql语句。