首页 > 编程知识 正文

hibernate主键生成策略,hibernate配置文件

时间:2023-05-05 06:22:34 阅读:173686 作者:810

在项目开发中,hibernate提供的经验简化了很多工作量和兼容性,但这些绝对需要经验,对于初学者来说很难使用。 hibernate比mybatis更难掌握,对sql的控制更弱。 我带了三个方面对mybatis和hibernate的总结分析,一起来看看两者的比较吧。

1 .开发效率

如果只是进行简单的添加、删除、变更、调查等项目,如简单的CMS,则使用Hibernate更有利。 不需要掌握太多的Hibernate知识,只需要进行基本的查询和一些配置。 (Hibernate真的需要掌握,我个人觉得知识量比mybatis多很多。 hiberbate用java对象拼写sql,mybatis直接写母语sql。 hibernate提供了很好的映射机制。 mybatis还需要自己写resultmap paramMap等东西。 Hibernate和MyBatis都有相应的代码生成工具。 可以生成简单、基本的DAO层方法。 对于高级查询,Mybatis必须手动编写SQL语句和结果映射。 Hibernate具有良好的映射机制,使开发人员可以集中精力处理业务流程,而无需担心SQL的生成和结果的映射。 综上所述,从米拓的开发效率方面来看,Hibernate mybatis。

2 .维护性

hiberbate用java对象拼写sql,mybatis直接写母语sql。 直接编写SQL更容易维护,但前者需要通过java对象查看SQL。 只有在system.out.println(SQL )中打印SQL后才能看到SQL。 Hibernate查询查询表中的所有字段。 性能会下降。 Hibernate还可以自己编写SQL以指定需要查询的字段,但这会破坏Hibernate开发的简单性。 Mybatis的SQL是手动编写的,因此您可以根据需要指定查询的字段。 优化Hibernate HQL语句需要打印SQL,但Hibernate的SQL很丑,所以很多人都不喜欢。 MyBatis的SQL是自己手动编写的,所以很容易调整。 但是,Hibernate有自己的日志统计信息。 Mybatis本身没有日志统计,使用Log4j进行日志记录。

3 .表演

两者都提供了缓存、会话机制。 小项目两者差不多吧。 大项目mybatishibernate。

4 .常见问题

在什么情况下,Hibernate会比MyBatis10慢10倍?

如果错误使用Hibernate,将出现:P

例如,嵌入在Hibernate对象a中的对象b的加载将从缺省懒惰加载更改为预加载。 假设您在无法理解影响的情况下更改了配置。 当您尝试查询对象a的列表时,将显示N 1查询,但大多数业务逻辑不需要读取嵌入式对象b,这会降低性能。

一般来说,MyBatis的这种查询需要手写。 出现这种情况的概率很小。

知识点扩展:

Hibernate缓存

Hibernate缓存是会话缓存,要利用l1缓存,必须管理会话的生命周期。 建议在一个操作中使用一个会话。 一级缓存必须严格管理会话。

Hibernate缓存是会话工厂级别的缓存。 会话工厂的缓存分为内部缓存和外部缓存。 嵌入式缓存包含SessionFactory对象的某些集合属性中包含的数据(如映射元素数据和计划的SQL语句),并且对APP应用程序来说是只读的。 外部缓存包含数据库数据的副本,其作用与主缓存类似。 二级高速缓存除了以内存为存储介质外,还可以选择硬盘等外部存储设备。 二级缓存称为进程级缓存或会话工厂级缓存,可由所有会话共享,并且其生命周期在会话工厂的生命周期中存在或消失。

我的电池缓存

MyBatis包含非常强大的查询缓存功能,可以轻松地进行配置和定制。 MyBatis 3的缓存实现有了许多改进,功能更强大,配置更容易。

缺省情况下,缓存未打开,但除了局部会话缓存外,还需要增强变体并处理循环依赖关系。 要打开二级高速缓存,必须在SQL映射文件中添加:行

正如字面所示。 这个简单句子的效果是:

缓存映射语句文件中的所有select语句。

映射语句文件中的所有insert、update和delete语句都会刷新高速缓存。

缓存是使用leastrecentlyused(LRU,最近最少使用)算法回收的。

根据时间表(例如,无刷新间隔),缓存不会按任何时间顺序刷新。

无论查询方法返回什么,缓存都包含列表集合或对象的1024个引用。

缓存被视为读/写(read/write )缓存。 这意味着对象的检索是不共享的,可以安全地更改调用方,而不会干扰其他调用方或线程的潜在更改。

至此,我介绍了一篇关于java中mybatis和hibernate的使用方法的总结文章。 有关mybatis和hibernate在更多相关java中的总结,请搜索脚本房屋以前的文章或继续阅读下面的相关文章。 今后也请多多关照。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。