2013-06-22 5 views
0

나는 끈기에 빠져서 "Pro JPA 2"라는 책을 읽었습니다. 나는 자바와 JDBC 팩의 문제가최대 절전 모드와 SQL 이식성

  1. SQL 휴대용되지 있다는 것을 읽을
  2. 자바 코드와 SQL 사이
  3. 의 긴밀한

JDBC의 아이러니, 즉 프로그래밍 있지만, 인터페이스가 인 경우, SQL 언어는 호환되지 않습니다. 을 표준화하려는 많은 시도에도 불구하고 이 두 개의 주요 데이터베이스 플랫폼에서 변경되지 않고 실행될 수있는 복잡한 SQL을 작성하는 일은 거의 없습니다. SQL 사투리가 유사한 경우에도 쿼리 구조에 따라 각 데이터베이스가 다르게 수행되므로 대부분의 경우 에서 공급 업체별 튜닝이 필요합니다.

내 질문은 :

  1. 는 SQL 이동성과 연결 문제가 여전히 중요하다?
  2. Hibernate, TopLink 및 다른 프레임 워크는 메타 데이터 (주석)에서 SQL 쿼리를 작성해야한다는 것을 이해합니다. SQL 이식성과 관련된 문제를 어떻게 조정합니까?
  3. Java & JDBC tight-coupling은 개발자가 SQL 쿼리를 작성해야한다는 것을 의미합니다. 나는 그것을 정확하게 이해합니까? 답변에 미리

감사는)

답변

1
  1. 예 문제는 SQL 코드 간의 긴밀한 커플 링이며, 우리는 ORM없이 다른 하나 개의 데이터베이스로 마이그레이션해야하는 경우 때문에 프로젝트에 매우 중요하다 , 우리는 응용 프로그램의 모든 쿼리를 변경해야합니다.

  2. Hibernate, TopLink 및 기타 ORM 솔루션은 Java 코드를 SQL 쿼리로 변환하고 데이터베이스로 트리거하지만보다 표준적이고 잘 테스트되므로 ORM 툴을 사용하여 직접 변환 할 수 있습니다. 우리의 코드는 질의로 들어가고 복잡성으로부터 우리를 추상화합니다. 따라서 직접 쿼리를 작성하는 대신 ORM 도구를 사용하는 것이 좋습니다.

  3. 예, Java & JDBC tight-coupling은 개발자가 직접 이식 할 수없는 SQL 쿼리를 작성해야한다는 것을 의미하며 데이터베이스 계층이 변경되면 모든 쿼리를 변경해야합니다. 대신 ORM 솔루션을 사용하면 일부 XML 또는 구성 파일 만 변경하여 ORM이 지원하는 모든 데이터베이스로 직접 마이그레이션 할 수 있습니다.

1

다른 데이터베이스로 전환해야하는 경우 SQL 이식성이 문제가됩니다.

절대로 전환하지 않을 것이라고 생각하기 쉽지만 비용이 많이 듭니다. 필자는 데이터베이스가 항상 공급 업체 x가 될 것이라고 가정 한 프로젝트에 있었지만 나중에 공급 업체 y 데이터베이스도 필요했습니다. 두 데이터베이스 모두에서 응용 프로그램 작업을 수행하려면 많은 고통스럽고 지루한 재 작업이 필요했습니다.

항상 표준 SQL을 사용하거나 표준 SQL 만 기록하는 ORM 도구를 사용하는 것이 좋습니다.

내 ORM, sormula는 항상 표준 SQL을 생성합니다. 당신이 sormula를 사용하여 응용 프로그램을 개발 한 경우, 모든이 JDBC 항아리를 변경하려면 데이터베이스를 전환하는 것입니다 필요합니다.

관련 문제