Mybatis概述

Mybatis概述

Mybatis是什么?
——–基于Sql Mapping的ORM实现的开源持久层框架
源自于apache的ibatis项目,代码迁移至google code后 更名为Mybatis 现在由Github 托管。
Mybatis就是 通过Java对象,接口,映射文件拼接成的sql语句发送给数据库,并将返回的结果集封装在指定的java对象中一个工具。
为解决传统sql语句的硬编码和持久层资源的频繁创建与释放问题而设计的框架。

使用Mybatis有什么意义?
——–将sql与java代码分离,使开发者专注于sql语句的编写。
意义在于:

 Mybatis封装了几乎所有的jdbc操作,是开发者对持久层的开发,尽可能的专于sql语句的编写。
 Mybatis是对sql语句的映射,使用配置文件的方式将 sql语句从代码中分离,支持动态的sql语句拼写。
 Mybatis通过mapper接口动态代理技术和对逆向工程的支持,大大的减少了持久层重复性代码的编写。
传统的jdbc采用硬编码的方式来完成对sql语句编写,预编译参数和结果集解析。 不利于程序的维护和可扩展性。Mybatis就是为此而设计。
传统的持久层的资源创建与释放特别频繁,Mybatis提供对持久层资源的管理。

与Hibernate的区别:

数据库移植性差: Mybatis专注于sql的编写,更换数据库需要修改SQL语句。而Hibernate基于ORM,HQL语句完全脱离底层的SQL语句,更换数据库简单
开发效率: Hibernate支持完整的ORM映射,开发者只需关注java对象与映射关系即可,开发速度快。而Mybatis需要手动编写sql语句开发速度慢。
sql优化: Mybatis的sql是开发者手动编写,易于优化。而Hibernate自动生成SQL语句,可读性差,不易优化。
总之 Mybatis更加 轻量级,高效率,适用于高并发项目。而Hibernate相较于Mybatis要重量级一些,功能强大,开发周期短,适用于并发量小,快速开发的项目。

你可能感兴趣的:(Mybatis)