programing

getString() 대신 JDBC getNString()을 사용해야 합니까?

css3 2023. 11. 6. 21:59

getString() 대신 JDBC getNString()을 사용해야 합니까?

JDBC(드라이버)를 사용하여 액세스하는 Oracle 데이터베이스를 통해 지원되는 Java 애플리케이션을 구축하고 있습니다.ojdbc6.jar그리고.orai18n.jar데이터베이스 스키마는 텍스트 열을 주로 사용하여 저장합니다.NVARCHAR2자료형.

JDBC에 대한 JDBC 문서ResultSet라고 합니다getNString()특히 NCAR, NVARCHAR 등의 데이터 유형과 함께 사용하기 위한 것이지만, 현재 우리는 단지 사용하고 있습니다.getString().

이거는 잘 되는 것 같은데 왜 써야 하는지 궁금합니다.getNString()보다는getString(). 이스getString()ASC가 아닌 경우 실패 시작II 문자가 입력되어 있거나 Oracle JDBC 드라이버가 어떤 메서드를 사용해야 하는지에 대해 무관심합니까?

편집: 데이터베이스에 의존적일 수 있습니다. SQL Server는 연결 매개 변수에 따라 사용자가 어떤 것을 사용하는지 신경 쓰지 않는 것 같습니다.오라클에 대한 구체적인 정보가 있는 사람?

우리 어플에 테스트를 해보았는데 아마getNString()Java 6, JDBC 6, Oracle JDBC 6 드라이버 및 Oracle 11.1.0.6.0에서는 불필요합니다.제가 사용한 테스트 문자열은 http://en.wikipedia.org/wiki/Unicode 에서 복사한 "δ, й, ק, م, ๗, あ, 叶, 말"입니다.

대부분의 데이터 액세스는 저장 프로시저를 통해 이루어집니다.자바는 다음을 통해 위의 테스트 문자열을 올바르게 설정하고 검색할 수 있었습니다.setObject()그리고.getString()(아니오)setString()추상화의 이유로), 인터페이스에서 데이터를 수집하고 예상대로 인터페이스에 다시 기록합니다.

이런 이유로getString()Oracle 11g(위 링크의 SQL Server와 같이)로 Unicode 데이터에 대해 정상적으로 작동하므로 우리는 이것을 사용하지 않고 계속 사용할 것입니다.getNString().

만약 당신의 DB가NVARCHAR2데이터 유형, 다국어 데이터를 저장하도록 설계되었습니다.유니코드 데이터가 해당 열에 저장되어 있으면 프로그램이 중단됩니다.내가 너라면, 나는 그 곳으로 옮겨갈 것입니다.getNXXX()방법들

언급URL : https://stackoverflow.com/questions/5892163/should-i-be-using-jdbc-getnstring-instead-of-getstring