这可能是一个教科书问题,但我正在考虑如何设计一些抽象数据库连接的类,而不是接收查询结果的RESTful服务.
我的想法是创建一个数据访问层接口,然后创建一个实现它的顶级类,并包括将由所有数据库共享的任何操作.然后,我将实现此超类(适配器)的具体子类.
对我来说似乎很简单,但有些人我反过来认为这可能会更复杂.
对于上下文,这是Java,两个DB是MySQL和HBase.我们已经拥有MySQL的数据访问层(DAL)类.这些不使用休眠或弹簧;他们构建数据库查询并手动从结果创建POJO实例.
所以我想我的问题有两个部分:
1) is this as simple as I think?
和
2) is there a better approach?
最佳答案 就像这种问题的情况一样,响应只能是:它取决于!
根据你想要达到的目标,this can be a complicated issue或者可以更简单.您可以使用像Hibernate这样的完整ORM工具,或者使用具有低级JDBC构造的自定义基本层.鉴于您的应用程序类型,它适用于您.
但是不要忽视这样一个事实,即你想要做的事情基本上是对车轮的重新发明. This has been done before.如果能够很好地重用你拥有的DAL,你应该重新使用它,或者去现有的框架.
此时,您想要的实现只是选择适当的工具.不要盲目地选择一个,分析每个的优缺点,然后选择最适合的工作(无论是你自己还是其他人).