相同点:
都是对jdbc的封装,都是持久层的框架,都用于dao层的开发。
不同点:
1. hibernate封装了sql语句,提供了HQL语言查询数据库,数据库无关性支持好,在项目需要支持多种数据库的情况下,代码开发量较少,sql语句优化困难;mybatis直接使用sql语句操作数据库,不支持数据库无关性,在项目需要支持多种数据库的情况下,代码开发量较多,sql语句优化容易
2. hibernate是配置java对象,与数据库表的对应关系,多表关联关系配置复杂。mybatis是配置java对象,与sql语句的对应关系,多表关联关系配置容易
3. hibernate是一个相对重量级的框架,学习使用门槛高,适合于需求相对稳定,中小型的项目,比如办公自动化系统(OA);mybaits是轻量级的框架,学习使用门槛低,适合于需求变化频繁,大型的项目,比如互联网项目。