Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ORM框架适合在Java的RESTfulWeb服务中使用吗_Java_Web Services_Rest_Orm_Software Design - Fatal编程技术网

ORM框架适合在Java的RESTfulWeb服务中使用吗

ORM框架适合在Java的RESTfulWeb服务中使用吗,java,web-services,rest,orm,software-design,Java,Web Services,Rest,Orm,Software Design,这个问题是针对软件架构师的 我对在RESTfulWeb服务中使用ORM框架感到困惑,这是一个好的实践吗 我实际上是Java开发人员,在Java上工作了5年,现在正在做一些软件架构师的工作,所以出现了这种困惑,我应该使用它还是不使用它 请根据你的经验告诉我它的利弊 谢谢如果您的服务调用的是SQL DB,那么使用ORM层是完全合理的 优点:简化了简单问题空间的编码 缺点:复杂SQL问题空间的次优性能如果您的服务调用的是SQL DB,那么使用ORM层是完全合理的 优点:简化了简单问题空间的编码 缺点:

这个问题是针对软件架构师的

我对在RESTfulWeb服务中使用ORM框架感到困惑,这是一个好的实践吗

我实际上是Java开发人员,在Java上工作了5年,现在正在做一些软件架构师的工作,所以出现了这种困惑,我应该使用它还是不使用它

请根据你的经验告诉我它的利弊


谢谢

如果您的服务调用的是SQL DB,那么使用ORM层是完全合理的

优点:简化了简单问题空间的编码


缺点:复杂SQL问题空间的次优性能

如果您的服务调用的是SQL DB,那么使用ORM层是完全合理的

优点:简化了简单问题空间的编码

缺点:复杂SQL问题空间的次优性能

同意Lee的观点。
使用ORM框架和Rest(或SOAP)是一种完全有效的方法。 我们在一个相当大的项目中结合面向服务的体系结构使用这个场景

根据我的经验,关于ORM框架的利弊:

  • 虽然ORM试图使开发人员免受SQL的复杂性的影响,但它有时会使事情变得简单,因为它诱使开发人员忽略事务边界和数据库隔离级别之类的事情
  • 如果您有已经拥有SQL经验的开发人员,您可以考虑使用MybATIS
  • 使用JPA/ORM需要一些努力才能掌握,但它非常值得阅读一本书或参加一门课程,因为以次优方式使用JPA会降低数据库性能或导致对象树的过度加载
在当前的项目中,我们通过为期两天的培训获得了很好的经验,这将为您提供一些技巧和示例代码,帮助您处理最常见的问题并避免陷阱。

同意Lee的观点。
使用ORM框架和Rest(或SOAP)是一种完全有效的方法。 我们在一个相当大的项目中结合面向服务的体系结构使用这个场景

根据我的经验,关于ORM框架的利弊:

  • 虽然ORM试图使开发人员免受SQL的复杂性的影响,但它有时会使事情变得简单,因为它诱使开发人员忽略事务边界和数据库隔离级别之类的事情
  • 如果您有已经拥有SQL经验的开发人员,您可以考虑使用MybATIS
  • 使用JPA/ORM需要一些努力才能掌握,但它非常值得阅读一本书或参加一门课程,因为以次优方式使用JPA会降低数据库性能或导致对象树的过度加载

在当前的项目中,我们通过为期两天的培训获得了很好的经验,这将为您提供一些技巧和示例代码,帮助您处理最常见的问题并避免陷阱。

顺便说一句,“复杂SQL”几乎总是指“糟糕的设计”,我100%同意。然而,直截了当地说“ORM==good”会让平庸的开发人员投下压倒性的反对票。我看到的最疯狂的现实生活中的sql查询不是“平庸的开发人员”工作的结果,而是优秀的开发人员试图使现有的基础设施适应系统最初设计时没有考虑的新需求。不幸的是,这在企业开发中经常发生……我不是说平庸的开发人员编写“复杂”的SQL,而是说他们总是第一个讨厌ORM查询的“糟糕设计”?桌子的位置?什么是索引?一般来说,我觉得数据库查询和表设计往往留给开发人员和架构师,而不是DBA和DB开发人员,但这当然只是我的意见。顺便说一下,“复杂SQL”几乎总是意味着“糟糕的设计”,我100%同意。然而,直截了当地说“ORM==good”会让平庸的开发人员投下压倒性的反对票。我看到的最疯狂的现实生活中的sql查询不是“平庸的开发人员”工作的结果,而是优秀的开发人员试图使现有的基础设施适应系统最初设计时没有考虑的新需求。不幸的是,这在企业开发中经常发生……我不是说平庸的开发人员编写“复杂”的SQL,而是说他们总是第一个讨厌ORM查询的“糟糕设计”?桌子的位置?什么是索引?一般来说,我觉得数据库查询和表设计往往留给开发人员和架构师,而不是DBA和DB开发人员,但我当然认为ORM框架与REST框架是正交的,它们服务于完全不同的需求。糟糕的架构是在一个项目中使用两个ORM框架,或者两个不同的JAX-RS实现。ORM框架与REST框架正交,它们服务于完全不同的需求。糟糕的架构是在一个项目中使用两个ORM框架,或者两个不同的JAX-RS实现?你可以想象它正在创建多少个对象,我知道它可以通过延迟加载来处理,但不是所有的事情都可以通过它来处理是的,这取决于你的应用程序有多大,是的,myBatis听起来很好。在我所见过的所有案例中,当ORM开始过度消耗资源时,更多的是框架的次优使用问题。当涉及到执行时,也一样——是的,直接使用JDBC可能更快,但是考虑到将结果集映射到java bean的需要,或者必须处理一些必须在数据库中持久的复杂数据结构。但当数据库大小变为1GB时会发生什么呢?我明白您的意思,但ORM不会使web服务变得繁重吗?你们可以想象它正在创建多少个对象,我知道它可以通过延迟加载来处理,但不是所有的东西都可以