首页 > MyBatis对比Spring Data Jpa有什么优势

MyBatis对比Spring Data Jpa有什么优势

如题,MyBatis需要编写大量的SQL,如果复杂的关联,还要写VO。这样对比起来,Spring Data Jpa简化后的Jpa,感觉不比MyBtais来的差,实在说服不了自己不用Jpa。
求解答,MyBatis对比Jpa带来的好处有哪些?


目前SSM的流行,可以看出MyBtais确实不错。
不过,我自己就在思考一个问题,如果JPA用只做单表,抛开繁杂的关联查询,未必就不是一个处理方式。
只是拿不定主意,到底用哪个?或者直接2者并存。


谈一谈个人的理解:mybatis的优势在于SQL的自由度上,SQL优化和返回对象的大小都是可控的。spring-data-JPA则在开发效率上有优势。楼主根据自己的业务情况权衡一下吧。


更灵活一些,可以直接写sql,这样可控性就更强。


利用mysql对sql的灵活性,再加上某些扩展(开源的),来补充mybatis对单表操作的麻烦,就完全是一个很好的实践。
补,建议实体的字段名与数据库的字段名保持一致,不加下划线。


老外对hibernate,JPA之类的ORM已经诟病很久了,诟病最多的不是灵活、性能,而是ORM是一种反模式,且RDB和OO本身具备的不匹配性会导致代码设计上的不合理。一句两句讲不清楚,给你一些文章看看吧:

  1. http://www.mehdi-khalili.com/orm-anti-patterns-series/

  2. http://seldo.com/weblog/2011/08/11/orm_is_an_antipattern

  3. http://programmers.stackexchange.com/questions/120321/is-orm-an-anti-pattern

  4. https://msdn.microsoft.com/en-us/magazine/dd569757.aspx

  5. http://www.infoq.com/research/java-relational-data

  6. https://www.infoq.com/articles/SQL-relevance-NoSQL

  7. http://www.javaworld.com/article/2077875/open-source-tools/ibatis--hibernate--and-jpa--which-is-right-for-you-.html


spring-data-mybatis
spring-data-jpa-extra
这两个也许=是你想要的方式


写sql,放到xml中,写vo;如果要修改sql就要循环上面的过程。

如果修改字段(改名),就更要命了,除了坐等出错之外你根本很难察觉到错误。

所以我不知道哪里来的勇气去坚持mybatis的。

【热门文章】
【热门文章】