代码生成器、ORM、存储过程

2023-11-20

这些软件架构在哪些领域表现出色或失败?

哪些关键要求会促使您选择其中一个?

请假设您有可用的开发人员,他们可以完成良好的面向对象代码以及良好的数据库开发。

另外,请避免圣战:)所有三种技术都有优点和缺点,我感兴趣的是最适合在哪里使用哪种技术。


这些工具中的每一个都提供不同的抽象层,以及覆盖行为的不同点。这些是架构选择,所有架构选择都取决于技术、控制和组织之间的权衡,包括应用程序本身和部署环境。

  • 如果您面对的是 DBA 称霸的文化,那么基于存储过程的架构将更容易部署。另一方面,存储过程的管理和版本控制可能非常困难。

  • 当您使用静态类型语言时,代码生成器会大放异彩,因为您可以在编译时而不是运行时捕获错误。

  • ORM 是集成工具的理想选择,您可能需要在安装到安装的基础上处理不同的 RDBMS 和模式。更改一张地图,您的应用程序就会从使用 Oracle 上的 PeopleSoft 变为使用 SQL Server 上的 Microsoft Dynamics。

我见过使用生成代码与存储过程进行交互的应用程序,因为可以调整存储过程以绕过代码生成器的限制。

最终,唯一正确的答案将取决于您要解决的问题以及解决方案需要执行的环境。其他任何事情都在争论“马铃薯”的正确发音。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

代码生成器、ORM、存储过程 的相关文章

  • WCF Duplex 客户端的最佳实践

    我不能否认双工异步调用的性能优势 但有些事情让我感到谨慎 我担心的是 给定一个实例化的客户端对象 WCF 是否能够知道哪个特定的客户端服务实例将接收回调参数 谁能告诉我这是否是一个好主意 如果不是为什么不呢 new DuplexChanne
  • 什么是差一错误以及如何修复它?

    什么是差一错误 如果我有 我该如何修复它 An 相差一误差例如 当您打算执行循环 n 次并编写如下内容时 for int i 1 i lt n i or for int i 0 i lt n i 在第一种情况下 将执行循环 n 1 次 在第
  • 存储过程/函数列表 Mysql 命令行

    如何在 mysql 命令行中查看存储过程或存储函数的列表 例如show tables or show databases 命令 SHOW PROCEDURE STATUS SHOW FUNCTION STATUS
  • Postgres FOR 循环

    我试图从表中获取 15 000 个 ID 的 25 个随机样本 我不是每次都手动按运行 而是尝试进行循环 我完全理解这不是 Postgres 的最佳使用方式 但它是我拥有的工具 这是我到目前为止所拥有的 for i in 1 25 LOOP
  • Hibernate 将对象保存到多个会话

    我正在尝试使用休眠写入多个数据库 我已将写入和读 写会话封装在单个会话对象中 但是 当我去保存时 我收到很多错误 这些对象已经与另一个会话关联 非法尝试将集合与两个打开的会话关联 这是我的代码 public class MultiSessi
  • 从对象生成 DTO

    我想从我现有的一些对象中自动生成一些 DTO 我想知道是否已经存在可以使用的 Resharper DevExpress 或 VSX 开源工具 我需要一个工具来查看我的代码并让我选择我想要的属性包含在我的 DTO 中 然后基于该生成一个类 另
  • 防止存储过程同时执行两次

    我有一个 SQL Server 2000 的存储过程 在任何给定时刻只能执行一个实例 有什么方法可以检查并确保该过程当前没有在执行吗 理想情况下 我希望代码是独立且高效 快速 的 我也不想做一些事情 比如创建一个全局临时表来检查它是否存在
  • 创建松耦合/可扩展的软件架构

    我已经研究这个好几个星期了 我目前正在设计一个松耦合架构设计采用n层 3层 方法和工厂设计方法 我的目标是将每个客户端的业务逻辑 ClientA DLL ClientB DLL 放在单独的命名空间中 以便项目横向扩展 这意味着我可以修改 删
  • 一个 StoredProcedure 中的多个更新语句

    我想知道存储过程中是否可以有多个 Update 语句 像这样的东西 Update Table1 set field1 new value where id table1 id Update Table2 set field2 new val
  • 是否有一种颜色混合算法可以像混合真实颜色一样工作?

    常见的 RGB 颜色混合与绘画颜色的混合有很大不同 它是光的混合而不是颜料的混合 例如 Blue 0 0 255 Yellow 255 255 0 Grey 128 128 128 应该是蓝色 黄色 绿色 是否有任何已知的颜色混合算法可以像
  • JPQL IN 子句:Java 数组(或列表、集合...)?

    我想加载所有将文本标记设置为数据库中任意少量但任意数量的值的对象 在 SQL 中解决此问题的逻辑方法是构建一个 IN 子句 JPQL 允许 IN 但它似乎要求我直接指定 IN 的每个参数 如 in in1 in2 in3 是否有某种方法可以
  • 与面向对象设计相关的组合是什么?

    我听到 并在这个网站上读到 很多关于 优先组合胜过继承 的内容 但什么是组合呢 我从人 哺乳动物 动物的角度理解继承 但我在任何地方都看不到组合的定义 有人可以补充我吗 组合是指将简单类型组合成更复杂的类型 在您的示例中 组合可以是 Ani
  • 从 SQL 视图执行 SQL 存储过程

    我发现在 Excel 中调用存储过程并不像应有的那么容易 但是调用视图或直接表非常容易 那么 如何创建一个视图来调用没有参数的存储过程 我知道我无法将任何值传递到视图中 并且我不需要或不想这样做 只是想将存储过程包装在视图中 就像是sele
  • OOP 的重点是什么?

    Locked 这个问题及其答案是locked因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 据我所知 尽管在 OOP 教育 语言和工具上花费了数百万甚至数十亿美元 但 OOP 并没有提高开发人员的生产力或软件可靠性 也没有
  • sql搜索查询多个可选参数

    我正在尝试为我的文档归档系统上的高级搜索页面编写查询 我正在尝试通过多个可选参数进行搜索 我有大约 5 个参数 它们可以是空字符串或搜索字符串 我知道我不必将每个检查为字符串或空 并为每个组合创建单独的存储过程 编辑 最终使用 ISNULL
  • 使用数据映射器模式,实体(域对象)是否应该了解映射器?

    我是第一次使用 Doctrine2 但我认为这个问题足够通用 不依赖于特定的 ORM 数据映射器模式中的实体是否应该意识到 以及use 地图绘制者 我有一些具体的例子 但它们似乎都可以归结为同一个普遍问题 如果我正在处理来自外部源的数据 例
  • 应该先考虑什么——设计模式还是代码?

    我正在开始一个全新的项目 我应该查看我的规范并决定应用哪些设计模式 还是只是提出一个总体的组织理念并允许模式通过重构有机地出现 根据您的经验 哪种技术最有成效并且更有可能产生干净优雅的代码 我还想知道是否有一些设计模式不是由 GoF 定义的
  • 使用 ORMLite 和输出参数的 ServiceStack MARS(多个活动结果集)

    ServiceStack ORMLite 很棒 我通常会避开 ORM 心态 更喜欢构建数据库 因为构建数据库而不是 1 1 类模型更有意义 也就是说 有几件事我似乎遇到了困难 我确信这只是我的无知 First 有没有办法使用 ORMLite
  • 分数在计算机中是如何表示的?

    由于计算机以 1 和 0 来思考 它们如何计算和表示诸如 7 50 之类的分数 我了解 Java 和 JavaScript 如果需要答案 您可以使用它们作为示例 Edit 我正在看这个麻省理工学院 Cormen 教授关于哈希的视频在 46
  • 使用实体框架从存储过程中检索表数据

    我正在使用实体框架 v6 我有一个存储过程 如下所示 CREATE PROCEDURE dbo GetCountryList CustomerName VARCHAR MAX SearchCriteria VARCHAR MAX AS BE

随机推荐

  • 角度4:从不同的组件调用方法

    我有 2 个同级组件 我正在一个组件中执行 http 请求 如果发生特定情况 它应该发出另一个在另一个组件中编写的 http 请求 所以我应该能够调用第一个组件中的方法 这是第一个组件 import Component OnInit Inj
  • 在elasticsearch中使用现有字段作为id

    今天刚开始使用elasticSearch 我想知道是否可以设置某种全局参数以始终使用文档中的某个字段作为 ID 我的 JSON 文档将始终拥有自己的唯一 ID Record ID a06b0000004SWbdAAG System Mods
  • Java 和本地数据库

    TL 博士 需要一些 Java 帮助来连接到真正的本地数据库 无法访问服务器技术 或者如果您可以编写代码 那就可以了 它所要做的就是查询数据库 MS Access 尽管可以更改 并输出一个 JSON 字符串 有关更多具体信息 请参阅 EDI
  • React Native android APK 扩展支持吗?

    我尝试搜索 React Native Android APK Expansion 但找不到任何有关它的页面 RN 支持 APK 扩展文件吗 如何在本地开发中测试它 谢谢 None
  • 在spring data elasticsearch中,聚合查询不能放在存储库实现中吗?

    我第一次使用 spring boot elasticsearch 我现在已经弄清楚如何使用 elastics java api 描述我的串行差异管道查询 正如您将在下面看到的 这个查询相当大 并且为每个对象返回多个存储桶以及每个存储桶之间的
  • 丢失密钥对后访问 EC2 实例

    几个月前 我启动了一个 EC2 实例 当时我将 pem 密钥存储在我的 PC 中 电脑崩溃后 我不得不在上面重新安装 Windows 而且我没有 pem 文件的备份 有什么方法可以让我到达 EC2 实例上的提示符 任何通过 ssh 或其他方
  • ASP.Net MVC 控制器构造函数中的会话为 null

    为什么控制器的构造函数中Session为null 可以从 Action 方法访问它 据推测 因为 MVC 路由框架负责更新控制器 所以它此时还没有 重新 实例化会话 有谁知道这是否是设计使然 如果是 为什么 我已经通过使用延迟加载模式设法规
  • jackson xml 列出了识别为重复键的反序列化

    我正在尝试使用将 xml 转换为 jsonjackson 2 5 1 and jackson dataformat xml 2 5 1xml结构是从Web服务器接收的并且未知 因此我不能用java类来表示该对象 并且我试图直接转换为Tree
  • 莫西忽略场

    使用 moshi 序列化为 json 字符串时是否有一种简单的方法来忽略字段 我只能想到是一个自定义适配器 但我感觉有更好的方法 Use transient关于现场声明 private transient String your varia
  • 使用反射在内部类中实例化带有参数的构造函数

    我有一些类似的事情 object parameter new object 1 parameter 0 x object instantiatedType Activator CreateInstance typeToInstantiate
  • OpenCV - 让滑块在视频播放期间更新其位置

    我选择了 学习 OpenCV 并尝试了一些代码示例 练习 在此代码片段中 我想让滑块随着每个视频帧的变化而更新其位置 但由于某种原因它不起作用 图片通过以下代码冻结 include cv h include highgui h int g
  • 在 SELECT INTO 中保留 ORDER BY

    我有一个 T SQL 查询 它从一个表中获取数据并将其复制到一个新表中 但只复制满足特定条件的行 SELECT VibeFGEvents INTO VibeFGEventsAfterStudyStart FROM VibeFGEvents
  • 检查路径是否有效

    我只是想知道 我正在寻找一种方法来验证给定路径是否有效 注意 我不想检查文件是否存在 我只想证明路径的有效性 所以如果文件可能存在于该位置 问题是 我在 Net API 中找不到任何内容 由于 Windows 支持多种格式和位置 我宁愿使用
  • 为什么 x 在内部作用域中未定义? [复制]

    这个问题在这里已经有答案了 在下面的代码中 var x 1 function console log x var x 2 为什么console log x 时 x未定义 可变提升 实际的代码是这样执行的 var x 1 function v
  • Interface Builder > Inspector > Bindings 中的“控制器键”是什么意思?

    我在文档中找不到他们解释所有这些字段及其含义的地方 尤其是 控制器键 我不清楚 复印我在另一个问题上的回答 控制器键是您要绑定的 控制器对象的属性 的键 模型关键路径是绑定对象可以向模型对象请求更基本的对象 例如字符串或图像 或其他模型对象
  • 使用 gson 将 json 字段反序列化为纯字符串

    我正在尝试将 json 对象反序列化为 java bean 我面临的主要问题是我想对待这个领域object将 json 字符串视为普通字符串 即使它包含可能正确的 json 对象 json结构是这样的 type user object id
  • REPL 和解释器有什么区别?

    REPL 和解释器之间有技术差异吗 交互式解释器使用 REPL 不需要配备口译员 例如 您可以以非交互模式 在文件上 运行 Python 并且它不会使用读取 评估 打印循环
  • 使用 numpy fft 提取相位信息

    我正在尝试使用快速傅立叶变换来提取单个正弦函数的相移 我知道 在纸面上 如果我们将函数的变换表示为 T 那么我们有以下关系 然而 我发现虽然我能够准确捕获余弦波的频率 但除非我以极高的速率采样 否则相位不准确 例如 import numpy
  • 如何在 Windows 机器上使用 nginx 运行 django?

    我有一个 Django 项目 我已经安装了nginx服务器 我想在 Windows 机器上运行 nginx 和 django 我尝试过几个博客Nginx Django Uwsgi 但它们都需要 uwsgi 但 uwsgi 未安装在 Wind
  • 代码生成器、ORM、存储过程

    这些软件架构在哪些领域表现出色或失败 哪些关键要求会促使您选择其中一个 请假设您有可用的开发人员 他们可以完成良好的面向对象代码以及良好的数据库开发 另外 请避免圣战 所有三种技术都有优点和缺点 我感兴趣的是最适合在哪里使用哪种技术 这些工