JDBC 드라이버의 국가별 기능

Microsoft SQL Server JDBC 드라이버의 국가별 기능은 다음과 같습니다.

  • SQL Server와 동일한 언어로 완전히 지역화된 환경을 지원합니다.

  • 로캘을 구분하는 SQL Server 데이터에 대해 Java 언어 변환을 지원합니다.

  • 운영 체제에 관계없이 국가별 언어를 지원합니다.

문자 데이터 처리

Java 문자 데이터는 기본적으로 유니코드로 처리하며 Java String 개체는 유니코드 문자 데이터를 나타냅니다. JDBC 드라이버에서 이 규칙의 유일한 예외는 ASCII 스트림 getter 및 setter 메서드입니다. 이들 메서드는 암시적으로 잘 알려진 단일 코드 페이지(ASCII)를 전제로 한 바이트 스트림을 사용하기 때문에 특수한 경우에 해당합니다.

또한 JDBC 드라이버는 sendStringParametersAsUnicode 연결 문자열 속성을 제공합니다. 이 속성을 사용하여 문자 데이터의 준비된 매개 변수를 유니코드 대신 ASCII 또는 MBCS(멀티바이트 문자 집합)로 보내도록 지정할 수 있습니다. sendStringParametersAsUnicode 연결 문자열 속성에 대한 자세한 내용은 연결 속성 설정을 참조하십시오.

드라이버의 들어오는 데이터 변환

서버에서 들어오는 유니코드 텍스트 데이터는 유니코드로 직접 전달되므로 변환할 필요가 없습니다. 서버에서 들어오는 데이터 중 유니코드가 아닌 데이터는 데이터베이스 또는 열 수준에서 데이터의 코드 페이지에서 유니코드로 변환됩니다. JDBC 드라이버는 이러한 변환을 수행하기 위해 JVM(Java Virtual Machine) 변환 루틴을 사용합니다. 이러한 변환은 형식화된 모든 문자열 및 문자 스트림 getter 메서드에서 수행됩니다.

JVM이 데이터베이스의 데이터에 대해 적절한 코드 페이지를 지원하지 않는 경우 JDBC 드라이버에서 "XXX 코드 페이지는 Java 환경에서 지원되지 않습니다." 예외가 발생합니다. 이 문제를 해결하려면 해당 JVM에 필요한 전체 국가별 문자 지원을 설치해야 합니다. 이러한 예를 보려면 Sun Microsystems 웹 사이트의 Supported Encodings 설명서를 참조하십시오.

드라이버의 나가는 데이터 변환

드라이버에서 서버로 나가는 문자 데이터는 ASCII 또는 유니코드일 수 있습니다. 예를 들어 SQLServerPreparedStatementSQLServerCallableStatement 클래스의 setNString, setNCharacterStreamsetNClob 메서드와 같은 새 JDBC 4.0 국가별 문자 메서드는 항상 유니코드를 사용하여 매개 변수 값을 서버에 보냅니다.

반면에 SQLServerPreparedStatementSQLServerCallableStatement 클래스의 setString, setCharacterStreamsetClob 메서드와 같은 국가별 문자 API 메서드 이외의 메서드는 sendStringParametersAsUnicode 속성이 "true"(기본값)로 설정되어 있는 경우에만 유니코드를 사용하여 서버에 값을 보냅니다.

유니코드가 아닌 매개 변수

유니코드가 아닌 CHAR, VARCHAR 또는 LONGVARCHAR 유형의 매개 변수를 사용할 때 성능을 최적화하려면 sendStringParametersAsUnicode 연결 문자열 속성을 "false"로 설정하고 국가별 문자 메서드가 아닌 메서드를 사용합니다.

서식 지정 문제

날짜, 시간 및 통화의 경우 지역화된 데이터에 관한 모든 서식 지정은 Locale 개체와 Date, CalendarNumber 데이터 형식의 다양한 서식 지정 메서드를 사용하여 Java 언어 수준에서 수행됩니다. 드문 경우이기는 하지만 JDBC 드라이버가 지역화된 형식으로 로캘 구분 데이터를 함께 전달해야 하는 경우 기본 JVM 로캘과 함께 적절한 포맷터가 사용됩니다.

데이터 정렬 지원

Microsoft SQL Server JDBC 드라이버의 이전 버전인 1.0, 1.1 및 1.2는 SQL Server 2000 및 SQL Server 2005에서 지원하는 모든 데이터 정렬을 지원합니다.

JDBC 드라이버 버전 2.0에서는 SQL Server 2000, SQL Server 2005에서 지원하는 모든 데이터 정렬 및 SQL Server 2008에 도입된 새로운 버전의 Windows 데이터 정렬 이름 또는 새 데이터 정렬을 지원합니다.

데이터 정렬에 대한 자세한 내용은 SQL Server 2008 온라인 설명서의 데이터 정렬 및 유니코드 지원Windows 데이터 정렬 이름(Transact-SQL)을 참조하십시오.

참고

관련 자료

JDBC 드라이버 개요