Java에서 데이터베이스에 연결하는 응용 프로그램을 개발 중입니다. 고객은 SQL Server를 보유하고 있으며 개발 기간 동안 라이센스를 구매하기를 원하지 않는 한 Microsoft의 SQLExpress 버전을 사용해 보았습니다. 안타깝게도 SQL Server Express는 네트워크 액세스를 허용하지 않기 때문에 동일한 데이터베이스에서 네트워크를 통해 작업 할 수 없으며 모든 개발자 클라이언트에 SQL Server Express 서버를 설치해야합니다.MS SQL에서 MySQL로 Java 전환 - 문자 집합
오늘 아침 나는 개발 프로세스 중에 MySQL로 전환하기로 결정했습니다. UTF8 charset을 사용하여 MySQL 데이터베이스를 만들고 데이터를 CSV 파일로 내 보낸 다음 UTF8로 변환하여 가져 왔습니다.
Java와 JDBC 드라이버를 연결하고 실행 중에 이상한 동작이 나타납니다. 결과는 SQL Server에 연결하는 클라이언트와 완전히 다릅니다. 나는 자바 글루 코드 인 myselft에 SQL을 작성했으며 Hibernate 나 JPA와 같은 프레임 워크를 사용하지 않는다.
문제는 문자 인코딩과 관련이 있다고 생각합니다. 소스 코드 파일은 CP1252로 인코딩되어 있습니다. Windows에서 Eclipse로 개발하기 시작했고 기본 설정을 신뢰할 수 있기 때문에 CP1252로 인코딩되었습니다. ResultSet 객체를 가져 오는 데이터베이스를 쿼리 한 다음 ResultSet에서 제공하는 getter 메서드를 사용하여 데이터를 읽습니다. 나는 데이터를 가져 오는 동안 어떠한 문자 변환도하지 않는다.
이제 문제는 암호화되지 않은 인코딩 된 출력이 아니라 NullPointerExceptions 및 이상한 데이터 처리입니다. 예를 들면 : 나는 Jobs (Job을 나타내는 객체, 이름, ID,화물 및 모든 물건)을 비교하는 메소드를 작성했다. 런타임 중 결과가 다릅니다. 일부 작업은 SQL Server에서는 같고 일부 작업은 MySQL에서 수행되지만 SQL Server 결과는 올바른 작업입니다.
방금 데이터베이스 속성을보고 SQL Server의 문자 인코딩이 ISO-Latin-1임을 확인했습니다. 쾰른에서 여러분의 도움과 관련, 마르코에 대한
감사
스택 추적의 관련 부분을 추가하십시오. –