hibernate与mybatis的区别和应用场景

mybatis 与 hibernate 的区别和应用场景(转)

1    Hibernate : 标准的ORM(对象关系映射) 框架;

不要用写sql, sql 自动语句生成;

使用Hibernate 对sql 进行优化,修改比较困难

应用场景: 试用需求,变化固定中小型项目;ERP,ORM,OA

2   mybatis: 程序员自己编写sql, sql 修改,优化比较自由。

mybatis 是一个不完全的ORM 框架(部分), mybatis 存在

映射关系(输入,输出映射);

应用场景: 除了hibernate 的场景,主要应用需求项目较多的场景,

互联网项目; 敏捷开发。

当希望对象的持久化对应用程序完全透明是,不适合使用mybatis
               当数据库有移植需求或需要支持多种数据库时,不适合使用mybatis

映射关系描述:

hibernate: 对数据库结构提供了较为完整的封装,hibernate 的O/R Mapping实现了POJO 和数据库表之间的映射,以及SQL 的自动生成和执行。

只需定义好了POJO 到数据库表的映射关系,即可通过提供的方法完成持久层操作。

不需要对SQL 的熟练掌握, 会根据制定的存储逻辑,自动生成对应的SQL 并调用JDBC 接口加以执行。

mybatis:POJO SQL之间的映射关系。然后通过映射配置文件,将SQL所需的参数,以及返回的结果字段映射到指定POJO。 相对“O/R”而言,iBATIS 是一种“Sql Mapping”的ORM实现。

数据库的无关性:

hibernate 的 具体数据只需要利用xml 进行关联; HQL 语句与数据库无关

mybatis 更接近sql ,因此对数据库的依赖较多。

Mybatis优势

MyBatis可以进行更为细致的SQL优化,可以减少查询字段。
    MyBatis容易掌握,而Hibernate门槛较高。

Hibernate优势

Hibernate的DAO层开发比MyBatis简单,Mybatis需要维护SQL和结果映射。
    Hibernate对对象的维护和缓存要比MyBatis好,对增删改查的对象的维护要方便。
    Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。
    Hibernate有更好的二级缓存机制,可以使用第三方缓存。MyBatis本身提供的缓存机制不佳

时间: 2024-08-11 05:29:53

hibernate与mybatis的区别和应用场景的相关文章

对比JPA 和Hibernate 和 Mybatis的区别

1.JPA.Hibernate.Mybatis简单了解 1.JPA:本身是一种ORM规范,不是ORM框架.由各大ORM框架提供实现. 2.Hibernate:目前最流行的ORM框架,设计灵巧,文档丰富(完全自动操作),只是性能不好控制(自己去控制性能,不是很好控制). Hibernate是一个完整的ORM框架,常规CRUD我们不需要写一句SQL; 3.MyBatis:本是apache的一个开源项目iBatis,提供的持久层框架包括SQL Maps和Dao,允许开发人员直接编写SQL(更好灵活).

一起了解Hibernate与Mybatis的区别优缺点对比

hibernate与mybatis的区别优缺点对比 前言: 我是一名java开发人员,hibernate以及mybatis都有过学习,在java面试中也被提及问道过,在项目实践中也应用过,现在对hibernate和mybatis做一下对比,便于大家更好的理解和学习,使自己在做项目中更加得心应手. 第一方面:开发速度的对比 就开发速度而言,Hibernate的真正掌握要比Mybatis来得难些.Mybatis框架相对简单很容易上手,但也相对简陋些.个人觉得要用好Mybatis还是首先要先理解好Hi

JPA、SpringData JPA 、Hibernate和Mybatis 的区别和联系

转自<JPA.SpringData JPA .Hibernate和Mybatis 的区别和联系> 一.JPA 概述 1. Java Persistence API(Java 持久层 API):用于对象持久化的 API 2. 作用:使得应用程序以统一的方式访问持久层 3. 前言中提到了 Hibernate,那么JPA 与 Hibernate究竟是什么关系呢: 1)JPA 是 Hibernate 的一个抽象,就像 JDBC 和 JDBC 驱动的关系 2)JPA 是一种 ORM 规范,是 Hiber

面试问hibernate和mybatis的区别和对mybatis的认识

一.对mybatis的认识 从背景上说:是一个支持普通SQL查询,存储过程和高级映射的持久层框架:是对jdbc的半封装,和hibernate一样是一个持久层框架 从特点上说:简单易学:没有依赖.灵活操做数据库:减少耦合提供dao层.提供映射 动态SQL 最强大的特性之一:可以让开发者掌控SQL功能:还可以集成 单独使用有许多的限制: (无法跨多个session事务)和一些框架一起使用 例如(ssm)把mybatis 配置成事务 aop 通过反射 从框架的架构上说:1:加载配置(配置文件和Java

Hibernate与Mybatis的区别

相同点Hibernate和Mybatis都是当前非常流行的ORM框架,实现Java对象和SQL的映射转换. Hibernate优势DAO层开发比MyBatis简单,Mybatis需要维护SQL和结果映射.数据库移植性好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL.支持更好的二级缓存机制,可以使用第三方缓存.MyBatis本身提供的缓存机制不佳. Mybatis优势可以进行更为细致的SQL优化,减少查询字段.容易掌握,而Hibernate门槛较高.

Hibernate和Mybatis的区别(摘自博客园-----alicejiyayun)

目录(?)[-] 第一章     Hibernate与MyBatis 1 Hibernate 简介 2 MyBatis简介 第二章 开发对比 开发速度 开发社区 开发工作量 第三章 系统调优对比 Hibernate的调优方案 Mybatis调优方案 SQL优化方面 扩展性方面 第四章 对象管理与抓取策略 对象管理 抓取策略 第五章 缓存机制对比 Hibernate缓存 MyBatis缓存 相同点 不同点 两者比较 第六章 Hibernate与Mybatis对比总结 两者相同点 Mybatis优势

hibernate和 mybatis的区别

第一方面:开发速度的对比 就开发速度而言,Hibernate的真正掌握要比Mybatis来得难些.Mybatis框架相对简单很容易上手,但也相对简陋些.个人觉得要用好Mybatis还是首先要先理解好Hibernate. 比起两者的开发速度,不仅仅要考虑到两者的特性及性能,更要根据项目需求去考虑究竟哪一个更适合项目开发,比如:一个项目中用到的复杂查询基本没有,就是简单的增删改查,这样选择hibernate效率就很快了,因为基本的sql语句已经被封装好了,根本不需要你去写sql语句,这就节省了大量的

2016.5.28 Mybatis 框架(七) Hilbernate 与Mybatis 本质区别和应用场景

Hilbernate:是一个标准ORM框架(对象关系映射),入门门槛较高,不需要程序写sql,sql语句自动生成了. 对sql语句进行优化,修改比较困难. 应用场景: 适用于需求变化不多的中小型项目 后台管理系统,erp.orm.oa Mybatis:专注的是sql本身,需要程序员自己编写sql语句,sql修改.优化比较方便,mybatis是一个不完全的ORM框架. 虽然程序员自己写sql,Mybatis也可以实现映射(输入映射.输出映射). 应用场景: 适用于需求变化较多的项目, 比如: 互联

hibernate和mybatis的区别

1. hibernate是全自动的ORM映射框架,而mybatis是半自动的. 2.sql直接优化上,mybatis要比hibernate方便很多. 3.hibernate数据库移植性远大于mybatis. hibernate通过它强大的映射结构和hql语言,大大降低了对象与数据库(Oracle.MySQL等)的耦合性,而mybatis由于需要手写sql,因此与数据库的耦合性直接取决于程序员写sql的方法,如果sql不具通用性而用了很多某数据库特性的sql语句的话,移植性也会随之降低很多,成本很