2010-11-24 3 views
0

관계형 데이터베이스, 객체 데이터베이스, XML 파일 등을 이상적으로 사용할 수 있어야하는 앱이 있다고 가정 해 봅니다. 구현 대신 인터페이스로 코딩한다는 정신에서 데이터 저장소와 관련된 모든 I/O에 대한 계약을 지정하는 일반적인 DataStore 인터페이스가 있습니다. 이 인터페이스는 RDBMSDataStore, OODBMSDataStore, XMLFileDataStore 등과 같은 구체적인 클래스로 구현할 수 있습니다.Java에서 극한의 데이터베이스 독립적 쿼리 ... 또는 일반적으로

나는 간단하게 데이터 저장소 인터페이스의 내용을 유지으로이 긴으로 잘 작동 - 즉 getThis(), getThose(), saveThat(), updateThis() 등하지만 더 복잡한 쿼리를 필요로 한, 고장 즉시. XMLFileDataStore 클래스는 분명히 SQL을 이해하지 못하고 RDBMSDataStore 클래스는 분명히 XPath/XQuery를 이해하지 못합니다. OODBMSDataStore는 사용중인 OODBMS에 따라 완전히 다른 것을 이해합니다.

언어 독립적 인 개체 쿼리 언어를 채택하고 모든 쿼리를 작성한 다음 구체적인 클래스로 모국어로 번역 할 수 있지만 완료하려는 경우 큰 작업입니다.

Java에서 이러한 상황을 처리하기위한 표준 또는 모범 사례가 있습니까? 불행히도 세계의 99 %가 "데이터베이스 독립성"을 "관계형 데이터베이스 독립성"으로 해석하고 객체 데이터베이스, XML 데이터베이스, 문서 데이터베이스 등을 완전히 무시하는 것으로 보입니다.

답변

0

질문을 읽는 방식에서 이것은 Hibernate이 Java 용 테이블에 가져 오는 의미와 비슷합니다. 심지어 콘텐츠 백업 저장소로 XML을 처리하는 모드도 있습니다 (Dom4J 사용). Hibernate API는 OODBMS 모델을 추가 할 수있는 많은 확장 포인트를 가지고있다. Hibernate가 당신을위한 최선의 해결책이 아니라고 판명 되더라도 (구현과 관련하여), 나는 제안한 문제를 해결하는 데 사용할 수있는 패턴 유형의 좋은 예를 제공한다고 생각한다.

관련 문제