实现数据访问层抽象

时间:2012-12-13 23:09:01

标签: java design-patterns data-access-layer

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

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

对我来说似乎很简单,但有些人我反复说相信它可能会更复杂。

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

所以我猜我的问题有两部分:

  

1)这跟我想的一样简单吗?

  

2)有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

就像这类问题的情况一样,回应只能是:它取决于!

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

但是不要忽视这样一个事实,即你想做的事情基本上是对车轮的重新发明。 This has been done before。您应该重用您拥有的DAL,如果它能够很好地工作,或者去现有的框架。

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