首页 > 编程知识 正文

mybatis连接mysql,springmvc的优点

时间:2023-05-03 14:29:34 阅读:173680 作者:4401

1、开发比较开发速度

hibernate的真正掌握比Mybatis更难。 Mybatis框架比较简单容易得到,但比较简陋。 我个人认为使用Mybatis还是需要先了解Hibernate。

社区发展

Hibernate和Mybatis都是流行的持久层开发框架,但Hibernate开发社区比较热闹,支持的工具也多,更新也快,目前最高版本为4.1.8。 Mybatis相对平静,工具较少,目前是最高版本3.2。

开发工作量

Hibernate和MyBatis都有相应的代码生成工具。 可以生成简单、基本的DAO层方法。

对于高级查询,Mybatis必须手动编写SQL语句和结果映射。 Hibernate具有良好的映射机制,使开发人员可以集中精力处理业务流程,而无需担心SQL的生成和结果的映射。

2、系统调优与Hibernate调优方案相比制定合理的缓存策略;

尽量使用延迟加载特性

采用合理的会话管理机制

使用批量捕获配置合理的批处理参数(batch_size );

进行合理的O/R映射设计

我的Mybatis调整方案

MyBatis在会话方面与Hibernate的会话生命周期一致,还需要合理的会话管理机制。 MyBatis也有二级缓存机制。 MyBatis可以进行详细的SQL优化设计。

SQL优化

Hibernate查询查询表中的所有字段。 性能会下降。 Hibernate还可以自己编写SQL以指定需要查询的字段,但这会破坏Hibernate开发的简单性。 Mybatis的SQL是手动编写的,因此您可以根据需要指定查询的字段。

优化Hibernate HQL语句需要打印SQL,但Hibernate的SQL很丑,所以很多人都不喜欢。 MyBatis的SQL是自己手动编写的,所以很容易调整。 但是,Hibernate有自己的日志统计信息。 Mybatis本身没有日志统计,使用Log4j进行日志记录。

可扩展性

Hibernate与具体数据库的关联只需要XML文件即可,所有HQL语句都是可移植的,与具体使用的数据库无关。 由于MyBatis项目中的所有SQL语句都依赖于所使用的数据库,因此不太可能支持不同的数据库类型。

3、对象管理和捕获策略对象管理

Hibernate是一个完整的对象/关系映射解决方案,它提供了对象状态管理功能。 这样,开发人员就不必在意底层数据库系统的细节。 这意味着,与典型的JDBC/SQL持久层方案相比,Hibernate采用了更自然的面向对象的观点来维护Java APP中的数据。

这意味着使用Hibernate的开发人员必须始终关注对象的状态(state ),而不考虑SQL语句的执行。 Hibernate已经负责这一部分的详细信息,只有在开发人员进行系统性能调整时才需要了解。

MyBatis在此块中没有文档说明,用户必须自己详细管理对象。

抓住战略

Hibernate具有很好的把持实体相关对象的机制。 对于每个关系,可以详细设置是否延迟加载,并提供四种模式:关系检索、查询检索、子查询检索和批量检索。 它被详细地组成和处理。

Mybatis的延迟加载是全局配置的。

4、缓存机制与Hibernate缓存进行比较

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

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

5、优势比较

Mybatis优势Mybatis可以提供更精细的SQL优化,并减少查询字段。

MyBatis容易掌握,Hibernate的门槛很高。

Hibernate优势Hibernate的DAO层开发比MyBatis简单,MyBatis需要维护SQL和结果映射。

与MyBatis相比,Hibernate更易于维护和缓存对象,以及添加、删除和修改的对象。

Hibernate数据库可移植性好,MyBatis数据库可移植性差,不同的数据库需要编写不同的SQL。

Hibernate提供了更好的二级缓存机制,可以使用第三方缓存。 MyBatis本身提供的缓存机制不好。

想知道框架技术和源代码的朋友直接追求(企鹅) 2042849237

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