문서의 이전 판입니다!
compile("com.microsoft.sqlserver:mssql-jdbc:6.4.0.jre8") // Spring boot ext['mssql-jdbc.version'] = '6.4.0.jre8' compile("com.microsoft.sqlserver:mssql-jdbc")
com.microsoft.sqlserver.jdbc.SQLServerDriverjdbc:sqlserver://host:port;databaseName=dbname;sendStringParametersAsUnicode=false설정값이 millisecond와 second가 섞여 있어서 매우 주의해야 함.
loginTimeout=second : connection timeout 역할 초 단위socketTimeout=millisecond 밀리초 단위queryTimeout=second 초 단위lockTimeout=millisecond : Lock을 기다리는 시간. sessionTimeout, queryTimeout보다는 작은값이어야 할 듯.varchar이고 파라미터가 nvarchar일 경우에는 우선순위가 낮은 varchar 타입 컬럼 값을 nvarchar로 일일이 변환해서 값을 비교하기 때문에 성능이 저하되게 됨# JDBC URL 파라미터로 아래 지정하면 VARCHAR 로 강제로 전송함 sendStringParametersAsUnicode=false 단, 이 경우에도 JDBC 4 에서 지원하는 setNString() 같은 setN* 계열 사용시에는 Unicode로 전송한다. # sendStringParametersAsUnicode=false 상황에서도 NVARCHAR 전송이 필요하면 pStmt.setObject(2,Id,Types.NVARCHAR); //강제로 Unicode로 전송 # 혹은 setNString() 사용
sendStringParametersAsUnicode=false로 VARCHAR 전송시에 JDBC Driver가 SQLServer 에 지정된 Collation에 따라서 문자열.getBytes(Collation.charset)으로 byte 배열로 변환하여 전송한다. 완성형의 경우에는 CP949로 변환.convert로 처리한다.... WHERE varcharcolumn = CONVERT(VARCHAR, ?)
java.util.logging 사용com.microsoft.sqlserver : info 이상com.microsoft.sqlserver.jdbc.Connection : debugcom.microsoft.sqlserver.jdbc.Statement : debug