本文是读 杨开振老师的《深入浅出 Mybatis技术原理与实践》第一章所记录的笔记,本文绝对没有推荐书的意思,只是看着记录学习,同时分享自己的观点而已。
Hibernate 优点
1)面向对象编程
2)告别SQL,使用HQL替代
3)使用配置文件,映射规则可配置
4)资源维护只需要管理 session
5)执行sql不依赖于数据库,自动生成对应数据库厂商的sql
6)效率较高,IDE可以自动生成,尤其是对多字段表映射上优势很大
Hibernate 缺点
1)全表映射带来不便,更新时需要发送所有的字段,原因是无法根据条件动态组装sql
2)对复杂的sql查询效率比较差(HQL性能不好),无法直接优化sql
3)不能有效支持存储过程,不是说不支持,而是支持不够完善,有很多限制
Mybatis 优点
1)容易上手,框架轻量(相比Hibernate)
2)使用xml维护sql,对需要优化sql效率的地方提供方便,同时也分离了代码和sql
3)动态拼接sql,灵活度很大
Mybatis 缺点
1)配置太多,效率偏低,因为是半自动化,sql,pojo,映射规则都要自己手写
2)编写的sql依赖于数据库,比如mysql和oracle在字符串连接上就是不一样的,所以数据库移植差