为了账号安全,请及时绑定邮箱和手机立即绑定

请教一下spring+mybatis的优缺点?

请教一下spring+mybatis的优缺点?

临摹微笑 2019-09-09 16:09:12
spring+mybatis的优缺点
查看完整描述

3 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

优点:1. 易于上手和掌握。2. sql写在xml里,便于统一管理和优化。3. 解除sql与程序代码的耦合。4. 提供映射标签,支持对象与数据库的orm字段关系映射5. 提供对象关系映射标签,支持对象关系组建维护6. 提供xml标签,支持编写动态sql。缺点:1. sql工作量很大,尤其是字段多、关联表多时,更是如此。2. sql依赖于数据库,导致数据库移植性差。3. 由于xml里标签id必须唯一,导致DAO中方法不支持方法重载4. 字段映射标签和对象关系映射标签仅仅是对映射关系的描述,具体实现仍然依赖于sql。(比如配置了一对多Collection标签,如果sql里没有join子表或查询子表的话,查询后返回的对象是不具备对象关系的,即Collection的对象为null5. DAO层过于简单,对象组装的工作量较大。6.  不支持级联更新、级联删除。7. 编写动态sql时,不方便调试,尤其逻辑复杂时。8 提供的写动态sql的xml标签功能简单(连struts都比不上),编写动态sql仍然受限,且可读性低。9. 使用不当,容易导致N+1的sql性能问题。10. 使用不当,关联查询时容易产生分页bug。11. 若不查询主键字段,容易造成查询出的对象有“覆盖”现象。12. 参数的数据类型支持不完善。(如参数为Date类型时,容易报没有get、set方法,需在参数上加@param)13. 多参数时,使用不方便,功能不够强大。(目前支持的方法有map、对象、注解@param以及默认采用012索引位的方式)14. 缓存使用不当,容易产生脏数据。 总结:mybatis的优点其实也是mybatis的缺点,正因为mybatis使用简单,数据的可靠性、完整性的瓶颈便更多依赖于程序员对sql的使用水平上了。sql写在xml里,虽然方便了修改、优化和统一浏览,但可读性很低,调试也非常困难,也非常受限,无法像jdbc那样在代码里根据逻辑实现复杂动态sql拼接。mybatis简单看就是提供了字段映射和对象关系映射的jdbc,省去了数据赋值到对象的步骤而已,除此以外并无太多作为,不要把它想象成hibernate那样强大,简单小巧易用上手,方便浏览修改sql就是它最大的优点了。mybatis适用于小型且程序员能力较低的项目和人群使用,对于中大型项目来说我并不推荐使用,如果觉得hibernate效率低的话(实际上也是使用不当所致,hibernate是实际上是不适用于拥有高负载的工程项目),还不如直接用spring提供的jdbc简单框架(Template),同样支持对象映射。

查看完整回答
反对 回复 2019-09-14
  • 3 回答
  • 0 关注
  • 846 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信