试题详情
- 简答题请简述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语句都是依赖所用的数据库的,所以不同数据库类型的支持不好。 关注下方微信公众号,在线模考后查看
热门试题
- ORM的好处包括()
- 关于Hibernate缓存说法错误的是(
- 如果不确定所寻找对象的持久化标识符,则需
- Hibernate继承映射有哪几种方式?
- 以下关于SessionFactory的说
- 使用Session的(),会把对象的状态
- J2EE中往往使用()封装业务实体,()
- A_oe和A_hr是数据库中的2个用户,
- Hibernate对象从临时状态到持久状
- 简述Hibernate与spring的联
- 在Hibernate中不看数据库,不看X
- Hibernate中load方法和get
- 关于Criteria查询,下列说法正确的
- Hibernate通过映射文件中的<ge
- 在Hibernate映射文件的ID的配置
- 在Hibernate的Criteria查
- 在Hibernate中,下列关于Sess
- 关于Hibernate中关系的说话正确的
- EJB分为()三种类型
- 在Hibernate的HQL查询中,se