您的位置:首页 > 其它

mybatis与hibernate的异同

2017-04-14 00:00 176 查看
MyBatis (又名iBatis), MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。

Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt、CallableStatement)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。

MyBatis与hibernate的异同

相同点:

Hibernate和MyBatis都是非常流行的ORM框架,对JDBC提供了较为完整的封装。Hibernate的O/R Mapping实现了POJO 和数据库表之间的映射,以及SQL的自动生成和执行。

而MyBatis主要着力点在于 POJO 与 SQL 之间的映射关系。然后通过映射配置文件,将SQL所需的参数,以及返回的结果字段映射到指定 POJO 。相对Hibernate“O/R”而言,Mybatis 是一种“Sql Mapping”的ORM实现。

返回结果都是直接直接返回Java对象,

Hibernate的真正掌握要比Mybatis来得难些。Mybatis框架相对简单很容易上手

区别:

hibernate属于全自动高精度封装SQL,SQL优化差.

MyBatis半自动 手工书写SQL,对SQL控制大,SQL优化好.

MyBatis日志功能欠缺(定位错误不准),hibernate日志功能好(定位错误准确)

hibernate功能强大,数据库无关性好,MyBatis无法做到数据库无关系性,但可以应对需求变化频繁的软件系统
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MyBatis