jpa自定义sql,SpringData JPA也能写sql,为什么还要用mybatis?

头条上问这种问题也是醉了。。看到了顺便答一波,瞎扯的人太多。

国内的设计思路是table driven的,简单来说,用数据表定逻辑,用模型做实现,实际这是和面向对象相反的思路。mybatis所谓的灵活性在大多数工程师手里就是不用考虑模型如何设计,“反正我用原生sql都能解决”,模型设计的烂的一逼,全靠sql去修修补补。而jpa是完全object driven的思路,前期设计的缺陷会很制约后续开发,并且不同的数据库可做不同的实现(实际是哪怕是redis也是一样的)。回答几个常见sb问题。

1.jpa表连接行为不确定,难以控制。

你确定你用过spring data jpa?不知道有EntityGraph ?傻瓜到这种程度了还能咋的。

2.jpa子查询不好实现。

我估计你都没用过吧?spring data jpa的子查询既可以单独定义视图,也可以做subquery,甚至直接用jpql。

3.jpa不好优化。

我真不信99%得优化能超过spring data jpa的优化,尤其是一般般的程序员能别把优化放嘴上么,连mysql的锁都搞不清楚,表设计的跟坨屎一样还天天原生sql,觉得自己很牛逼么?jpa是可以把表属性反应到对象的,天然就有运行时优化的底子在,ORM能发展的空间太大了,稍微有点技术认知的都知道ORM会优势越来越大。稍微有些经历的程序员都知道现在是先说好维护才说其他的,能解决性能的方法太多了好么。

最后,难道不知道现在提倡ORM+CQRS么?请问,有啥复杂的解决不了,都不需要native sql介入好么。

如何将数据库中查询出来的数据再进行分页操作?

“我是哟哟吼说科技,专注于数据网络的回答,欢迎大家与我交流数据网络的问题”

如题,如何将数据库查询出来的数据进行分页操作?

哟哟简单说一下分析及操作步骤:

1、创建一个page对象

a、创建所需要的属性,如当前的页码CurrentPage;

b、通过数据库查出得到数据的总和TotalConunt;

c、分析一共需要多少页TotalPage(所有数据的总和/CurrentCount,采用math.ceil()方法);

d、生成setter和getter方法;

2、servlet层调用service层的方法

a、创建一个service层的对象;

b、在service层创建findPageCategory方法,目的是为了获取跟分页有关的所有属性,如TotalPage,TotalCount等;jpa自定义sql,SpringData JPA也能写sql,为什么还要用mybatis?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 xxx@163.com 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论