实现数据访问层抽象

Posted

技术标签:

【中文标题】实现数据访问层抽象【英文标题】:Implement data access layer abstraction 【发布时间】:2012-12-01 22:49:48 【问题描述】:

这可能是一个教科书问题,但我正在考虑如何设计一些类,将数据库连接从接收查询结果的 RESTful 服务中抽象出来。

我的想法是创建一个数据访问层接口,然后创建一个***类来实现它并包含所有数据库共享的任何操作。然后,我将实现这个超类的具体子类(一个适配器)。

对我来说似乎很简单,但我认为这可能更复杂一些。

对于上下文,这是 Java,两个 DB 是 mysql 和 HBase。我们已经有了 MySQL 的数据访问层 (DAL) 类。这些不使用休眠或弹簧;他们手动构建数据库查询并根据结果创建 POJO 实例。

所以我想我的问题有两个部分:

1) 这真的像我想的那么简单吗?

2) 有更好的方法吗?

【问题讨论】:

【参考方案1】:

由于这种问题的情况,回答只能是:视情况而定!

根据您要实现的目标,this can be a complicated issue 或者可以更简单。您可以使用像 Hibernate 这样的成熟 ORM 工具,或者使用具有低级 JDBC 结构的自定义基本层。考虑到您拥有的应用程序类型,这对您有用。

但不要忽视这样一个事实,即您想要做的基本上是对***的重新发明。 This has been done before。如果 DAL 工作良好,您应该重用您拥有的 DAL,或者使用现有框架。

此时,您想要的实现只是选择合适的工具。不要盲目地选择一个,分析每个优点和缺点,然后选择最适合工作的一个(你的或其他人的)。

【讨论】:

只是个人喜好,也可以看看iBatis/myBatis

以上是关于实现数据访问层抽象的主要内容,如果未能解决你的问题,请参考以下文章

PDO 数据访问抽象层

PDO:数据访问抽象层

PDO:: 数据访问抽象层 ? :

PHP-------PDO:数据访问抽象层

控制反转的实现方式

Spring Boot - 构建数据访问层