当前位置: 首页 > 面试题库 >

Spring Hibernate vs jdbc模板与spring orm

濮俊美
2023-03-14
问题内容

我们有一个以MySQL数据库和Spring为框架的项目。我对Spring非常陌生,希望实现数据库访问层,发现有多个可用选项,例如

  • 使用Spring + Hibernate
  • 使用Spring JDBC模板
  • 使用Spring ORM模块

我浏览了stackoverflow中的各种文章,并在网络上做了一些研究,但是每个问题都有不同的答案,支持不同的选择。另外,我确实看到不建议使用Spring
JDBC模板的提示。

该应用程序每小时可能有大约1000个事务,并且大约有60%的读取和40%的写入。

谁能帮助我找到有关这三个选项中哪个选项的答案,为什么?或者,如果您可以向我介绍一些资源,也将不胜感激。


问题答案:

Hibernate只是Spring支持的众多ORM解决方案之一。其他在这里列出。

如果满足以下所有条件,则可以选择ORM:

  1. 您具有将关系数据映射到的实体对象模型。
  2. 您喜欢ORM层为您生成的SQL。
  3. 您的架构完全符合ORM解决方案的要求。
  4. 您并没有使用很多存储过程。
  5. 您没有想到您可以比ORM更好地优化SQL。

如果其中任何一个都不正确,那么也许ORM不适合您。

Spring
JDBC模板轻巧简单。我敢打赌,它可以满足您所说的要求。我建议您继续进行此操作,直到您发现自己的要求将您带到ORM。如果您遵循典型的Spring习惯用法并创建基于接口的持久层,这将意味着注入一个实现而不是另一个实现。



 类似资料:
  • 我在让Thymeleaf按照我想要的方式处理模板方面遇到了一些问题。我以前使用的ApacheTiles很有效,但我认为它在配置/XML中很重要。我有一个优雅的解决方案,我甚至在XML配置中定义我的JavaScripts和Sytlesheets。然而,我想完全远离JSP。我已经看到了Thymeleaf和Facelets的参考资料。我决定试试Thymeleaf,但我在为所有其他页面获取默认布局时遇到了

  • 我想用TYPO3 v10做一个项目我是这个CMS的新手,我需要为不同的页面创建不同的模板,但我不知道我需要更改哪些代码 我已经从该站点安装了sitepackagehttps://www.sitepackagebuilder.com/ 它工作得很好,但我需要创建自己的模板,我想在后端管理中编辑模板的内容,如图所示。 我希望我很清楚谢谢你的帮助:)

  • YDoc 主题的模板是若干的 jsx 组件,以下是各模板文件相对应的功能(按首字母排序): 模板 功能 Content.jsx 文档页内容 Footer.jsx (用户自定义组件) Footer 信息 Head.jsx html 文件中 部分的内容 Header.jsx 顶部导航 Homepage.jsx (用户自定义组件) 文档站首页 Hook.jsx 钩子,用于自定义插件 Icon.jsx f

  • 多亏了C11,我们收到了系列的仿函数包装器。不幸的是,我一直只听到关于这些新添加的不好的消息。最受欢迎的是它们非常慢。我测试了它,与模板相比,它们真的很糟糕。 111毫秒对1241毫秒。我认为这是因为模板可以很好地内联,而通过虚拟调用覆盖内部。 显然,在我看来,模板也有其问题: 它们必须以头的形式提供,这不是您在以封闭代码形式发布库时可能不希望做的事情, 因此,我可以假设s可以用作传递函子的事实标

  • 函数和整个类都可以声明为非模板类友元。使用类模板,可以声明各种各样的友元关系。友元可以在类模板与全局函数间、另一个类(可能是模板类)的成员函数间或整个类中(可能是模板类)建立。建立这种友元关系的符号可能很繁琐。 在下列X类的类模板中声明为: template<class T>class X 下列友元声明: friend void f1(); 使函数f1成为从上述类模板实例化的每个模板类的友元。 在

  • 模板与继承关系如下所示: 类模板可以从模板类派生。 类模板可以从非模板类派生。 模板类可以从类模板派生。 非模板类可以从类模板中派生。

  • 这是我在玩变量模板时遇到的一个问题。我有一些代码,使用专业化来计算参数包中的“有趣”类型,就像这样: 这段代码工作正常,但是如果我想使用相同的方法来计算类模板,我会遇到问题: 上面的代码编译失败,错误是"预期的类型,得到了'向量'"开始的行"结构计数"。我也无法更简单的东西,所有的类模板接受一个参数: 这段代码也无法编译,再次在以“结构计数”开头的行中抱怨“预期的类型,得到了‘_First’”。有

  • 上节课我们学习了如何将信息渲染到模板之中,但是这些信息都是直接传入模板引擎中进行渲染的,有的时候我们想要转换一下这些数据才进行渲染,这就需要使用到 Go 模板语言中的一些其他用法。 模板函数 比如我们需要从.Values中读取的值变成字符串的时候就可以通过调用quote模板函数来实现:(templates/configmap.yaml) apiVersion: v1 kind: ConfigMap