ORM框架
应用程序中的POJO对象和数据库表相互映射的框架称为对象关系映射框架(Object Relational Mapping),Hibernate与Mybatis都可以称为ORM框架
只是Hibernate的设计理念是完全面向POJO的(全映射框架),而MyBatis则不是(半映射框架)
Hibernate
1.Hibernate在需要存储过程与复杂SQL时,映射关系使用不上,需要自己用代码处理,没办法完全的掌控数据库的SQL
2.优化SQL是高并发,高响应系统中必然的要求,这种不能完全掌控SQL的持久层框架只适用与企业管理系统,不适用与电商类应用
3.映射规则可以通过XML以及注解实现,类似如下:
1 2 56 7 8 12 3013 14 15 17 18 22 23 2616 27 28 29
4.Hibernate会根据映射关系来生成对应的SQL,通过操作POJO来操作数据库中的表
MyBatis
相对于Hibernate而言,持久层框架MyBatis需要编写SQL,而且也提供映射规则,它的动态SQL,自动映射,接口编程等功能使它简单易用
本身支持SQL优化,使它满足高并发场景的应用条件,当下最为流行
1.优势在于灵活,提供了接口编程(数据库访问层DAO层是不需要实现类的,只提供一个接口即可)
2.MyBatis提供自动映射,动态SQL,级联,缓存,注解,代码和SQL分离等特性
3.MyBatis映射规则可以通过XML以及注解实现,类似如下:
1 2 56 7 12 13 16 17 18 insert into user (username,password,type) values (#{username},#{password},#{type})19 20 2122 delete from user where id=#{id}23 24 25 29 3031 update user set username=#{username},password=#{password}32 where id=#{id}33 34
4.MyBatis需要提供接口以及对应SQL的XML文件,自定义SQL意味着工作量增加,但是这也是它优于Hibernate的地方,
自定义SQL意味着可以SQL调优,提高系统性能