【发布时间】:2021-05-07 18:50:46
【问题描述】:
所以我是软件开发的初学者,每次我必须编写一些从数据库中获取数据的程序时,我在构建该层时遇到问题,我想知道我是否想多了。
我知道我们应该让我们的系统易于更改,而且我认为数据库供应商是可能会改变的事情之一。 SQL 数据库通常保持不变,或者该语言已经提供了某种形式的抽象,例如 JDBC。
但是如果新的数据源是另一种类型的数据库会发生什么,我应该提供单个 DataSource 抽象吗?我还想,要做到这一点,我需要某种对象来解析数据,类似于 Java 中的 ResultSet,或者甚至像 String Map 这样简单的东西,并解析为我在其他地方需要的类型。但我也认为这样做可能会降低复杂性,将一种数据结构的数据传递给另一种更通用的数据结构。
我没有使用过 ORM,所以我不知道它们是否提供了我正在考虑的抽象,它们是否有助于解决这个问题?
那么这通常是如何处理的呢?还是不需要不同类型数据库之间的抽象?
【问题讨论】:
标签: architecture software-design