什么是更好的 sql 或使用 spring 注入属性
Posted
技术标签:
【中文标题】什么是更好的 sql 或使用 spring 注入属性【英文标题】:What is better sql or injecting the properties using spring 【发布时间】:2020-02-09 11:32:36 【问题描述】:我有一次面试,我被告知要从 db 读取并写入文件 在我的查询中我写了
select col1 as aliasOne,
case when col2 == "someValue" then anotherValue
我很少写过这样的案例陈述 但是当面试官看到这个时,他问我为什么选择这种方法?对此我说它更快。 他建议我将其写入属性文件并使用
读取@ConfigurationProperties("someName")
他认为这样更好更快。 他是对的吗?我仍然觉得我的方法更快更好
【问题讨论】:
你如何构建你的查询字符串与性能无关,如果它最终是相同的查询。查询的执行需要时间。 我不是 Java 开发人员,但大概像 Spring 这样的框架的全部意义在于通过抽象架构细节和使用接口来避免直接编写 SQL,除非需要真正专门的东西,其中无论如何,一个程序可能会做得更好。顺便说一句,col2 == "someValue"
在 Oracle 中不是有效的 SQL。
【参考方案1】:
数据库调用需要网络调用。因此,从与应用程序一起部署的属性文件中读取会稍微快一些。 你看看这篇文章。 https://www.baeldung.com/properties-with-spring https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-application-properties.html
它使您可以更灵活地根据环境(例如(QA/PROD/DEV)进行查询。
除了性能之外,灵活性和易于维护也很重要。
【讨论】:
以上是关于什么是更好的 sql 或使用 spring 注入属性的主要内容,如果未能解决你的问题,请参考以下文章
Spring框架参考手册(4.2.6版本)翻译——第三部分 核心技术 6.4.1 依赖注入