XCMercy 2019-12-18
从背景上说:是一个支持普通SQL查询,存储过程和高级映射的持久层框架;是对jdbc的半封装,和hibernate一样是一个持久层框架
从特点上说:简单易学;没有依赖。灵活操做数据库;减少耦合提供dao层。提供映射 动态SQL 最强大的特性之一;可以让开发者掌控SQL功能;还可以集成 单独使用有许多的限制;
(无法跨多个session事务)和一些框架一起使用 例如(ssm)把mybatis 配置成事务 aop 通过反射
从框架的架构上说:1:加载配置(配置文件和Java代码的注解)2:SQL解析 3:SQL执行 4:结果映射
执行原理:sqlsessionfactorybuild 通过build sqlsessionfactory 工厂函数 创建sqlsession 通过 sqlsession 获得连接,
在service层通过代理对象获取dao层的接口 xml文件通过namesapce 连接 得到结果集映射 最后在服务器端获取service层接受的数据 响应到客户端
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,建立对象与数据库表的映射。是一个全自动的、完全面向对象的持久层框架。
Hibernate优势
Hibernate的DAO层开发比MyBatis简单,Mybatis需要维护SQL和结果映射。
Hibernate对对象的维护和缓存要比MyBatis好,对增删改查的对象的维护要方便。
Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。
Hibernate有更好的二级缓存机制,可以使用第三方缓存。MyBatis本身提供的缓存机制不佳。
2.2 Mybatis框架 Mybatis是一个开源对象关系映射框架,原名:ibatis,2010年由谷歌接管以后更名。是一个半自动化的持久层框架。
MyBatis可以进行更为细致的SQL优化,可以减少查询字段。
MyBatis容易掌握,而Hibernate门槛较高。
一句话:
Mybatis:小巧、方便、高效、简单、直接、半自动化
Hibernate:强大、方便、高效、复杂、间接、全自动化