【MyBatis】与Hibernate概念对比

Hibernate框架:一种开源的、轻量级的ORM框架,允许将普通的、传统的Java对象(POJO)映射成持久化类,允许应用程序一面向对象的方式来操作POJO,Hibernate框架负责将这种操作转化成底层的SQL操作

MyBatis框架Apache组织提供的一个轻量级持久层框架,支持普通SQL查询、存储过程和高级映射的优秀持久层框架。

        一些新系统和新项目的开发使用Hibernate就显得中无往不利。但是一些特定的环境下,比如:

1、系统的部分或者全部数据来自现有数据库,出于安全考虑,只对开发团队提供几条SelectSQL或存储过程以获取所需数据,具体的表结构不公开。

2、开发规范中要求,所有牵扯逻辑处理的数据库的操作,必须在数据库由存储过程实现(如金融行中各大商业银行都有这样的严格开发规范)。

3、系统数据处理量大,性能要求苛刻我们必须通过高度优化的SQL或者存储过程才能达到系统的性能指标。

Hibernate就不再适合甚至不能使用。而“半自动”的MyBatis却能很好的适应这样的严格的开发需求,这里的“半自动化”是相对Hibernate的“全自动化”(SQL的自动生成和执行)ORM实现而言。

       Hibernate与MyBatis相同点使开发人员在开发过程中面对的是纯粹的Java对象不同点在于对具体数据库操作Hibernate会自动生成SQL语句,而MyBatis则不会为程序员在运行期间自动生成SQL,具体的SQL需要我们自己编写,通过映射文件将SQL所需的参数以及返回结果字段映射到指定的POJO中

       MyBatis存在的意义:消除了几乎所有的JDBC代码和参数的手工设置过程以及对结果集的检索封装,可以使用简单的XML或者注解来进行配置和原始映射。将接口和Java的POJO映射成数据库中的记录。作为持久层框架,主要思想是将程序中大量的SQL语句剥离出来,配置在配置文件中,实现SQL的灵活配置。更好的将SQL与代码分离,可以不修改代码直接在文件中修改SQL。

猜你喜欢

转载自blog.csdn.net/weixin_38256991/article/details/80656258