SpringData JPA也能写sql，为什么还要用mybatis?
先去使用任意一种，然后当你发现现在框架有什么痛点的时候，你希望进一步优化的时候，再看看其他框架是否解决了你的痛点。 你就会明白另一个框架的优势了 吃葡萄，是需求。提供什么葡萄，是技术。 现在有很多开发人员学习其实有个怪圈，就是执着于一个技术的表面以及技术本身。经常为了学某个技术而去学，不考虑它好在哪里。比如说spring security ，安全框架，都知道它实现了授权，鉴权等操作。但是，就单纯请求拦截来看，我用aop来拦截所有请求，来控制权限不可以吗？当你发现当前技术有什么限制你的时候，你就会明白其他框架的意义了。 扯远了说回来，现在一个场景，你手头有个项目 上面故事讲的有点长了，来说下自己的理解。 其实现在市面上对比这里啊框架，我觉得他们大多都是在描述技术上的区别。我的看法是 面向sql就更利于优化，因为sql可以优化的点太多了。面向对象就更利于移植，因为数据对象不依赖于数据源。俩系统的用户分页语句可能不一样，但是属性都是那么几个。 以上，手机编排，不够细致。有时间再去电脑上重新排版吧……（如果有这个需求的话）  非常感谢能看到最后的朋友们。如果觉得这篇回答对你有用。不妨点个赞和点个喜欢。这样可以让更多的人看到这篇回答。 另外，本人已经开通了自己的公众号【猿树洞】，会不定期更新：技术博客，求职面试经验，学习建议等。除此之外，有时间还会解答部分粉丝的疑问！