优势:
- Spring jdbc可以写出足够灵活的sql,不用担心查询效率。
- 使用极其方便,不需要引入第三方框架,不用配置xml。
劣势:
- sql硬编码
Mybatis支持将SQL写到注解中;
另外,多级缓存的实现、延迟加载、动态SQL、MyBatis Generator等等,如果是Spring JDBC的话要麻烦一些吧。
ORM框架的意义,绝对不止帮你执行SQL这么简单。
SQL的可维护性相对OOP语言来说差了不少,这点是公认的,而且非常不方便维护和重构。
而且ORM框架相对来说都会提供更简单的事务管理和加锁还有缓存。
不应该把ORM框架简单地看成把SQL和类进行绑定
从工作的角度来回答你这个问题,纯jdbc的使用给人的感觉就是一个字-累!大量的sql语句,大量的get/set方法,充斥在代码中,而合适的orm框架可以帮你从没有必要的体力活中解脱出来。当然,本该你做的活儿,你让代码自动地去帮你做一部分,多多少少都会损耗些性能的,但相比这些许的性能损耗,换来了繁琐流程的简化,明确的开发模式规范,是值得的。
mybatis属于一个半自动的orm框架,本质是sql映射,所以我把mybatis归类与一种偏JDBC的底层技术,与jdbc相比本无太大差异,却又为你做了很多事儿,实现了更多的功能。
本人用了较长时间的jdbc,真心累了,也正准备将mybatis引入到开发中,适当地提升团队开发效率。
没有什么替代不替代的,存在即合理,看你的应用场景来选择合适的技术。如果项目比较小,或是非常重性能,那就jdbc, 但个人感觉一般情况下Mybatis是更好的选择,在项目的可维护性上,并且Mybatis对比jdbc性能并没有什么太多损失
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
我感觉可以替代了,写了几个项目都只用了
Spring
感觉也没问题,不知道是不是因为资历太浅,潜在的问题还没发现