사용자 도구

사이트 도구


mssqlserver:jdbc

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
mssqlserver:jdbc [2018/09/10 13:57]
kwon37xi [JDBC Driver 사용시 String 파라미터로인한 Full Scan 문제]
mssqlserver:jdbc [2022/03/31 17:32] (현재)
kwon37xi [JDBC Driver 사용시 String 파라미터로인한 Full Scan 문제]
줄 32: 줄 32:
   * [[http://cephas.net/blog/2005/12/02/java-jtds-preparedstatement-and-varchar/|Java, JTDS, PreparedStatement and varchar | Aaron Johnson]]   * [[http://cephas.net/blog/2005/12/02/java-jtds-preparedstatement-and-varchar/|Java, JTDS, PreparedStatement and varchar | Aaron Johnson]]
   * [[https://blogs.msdn.microsoft.com/sqlcat/2010/04/05/character-data-type-conversion-when-using-sql-server-jdbc-drivers/|Character data type conversion when using SQL Server JDBC drivers | SQL Server Customer Advisory Team]]   * [[https://blogs.msdn.microsoft.com/sqlcat/2010/04/05/character-data-type-conversion-when-using-sql-server-jdbc-drivers/|Character data type conversion when using SQL Server JDBC drivers | SQL Server Customer Advisory Team]]
 +  * [[https://vladmihalcea.com/sql-server-jdbc-sendstringparametersasunicode/|SQL Server JDBC - Set sendStringParametersAsUnicode to false]]
 <code> <code>
 # JDBC URL 파라미터로 아래 지정하면 VARCHAR 로 강제로 전송함 # JDBC URL 파라미터로 아래 지정하면 VARCHAR 로 강제로 전송함
줄 59: 줄 60:
   * MS의 JDBC Driver는 ''java.util.logging'' 사용   * MS의 JDBC Driver는 ''java.util.logging'' 사용
   * [[java:slf4j|Slf4j]]의 jul-to-slf4j 설정 적용해야 함.   * [[java:slf4j|Slf4j]]의 jul-to-slf4j 설정 적용해야 함.
-  * 쿼리 로그 설정 : 클래스의 패키지 구조와 로거 구조가 일치하지 않음.+  * 쿼리 로그 설정 : 클래스의 패키지 구조와 로거 구조가 일치하지 않음. 또한 JDBC 드라이버 버전마다 로거가 바뀜. 그래서 안나오면 확인필요
     * ''com.microsoft.sqlserver'' : ''info'' 이상     * ''com.microsoft.sqlserver'' : ''info'' 이상
-    * ''com.microsoft.sqlserver.jdbc.Connection'' : ''debug'' +    * ''com.microsoft.sqlserver.jdbc'' : ''debug''
-    * ''com.microsoft.sqlserver.jdbc.Statement'' : ''debug''+
   * [[https://docs.microsoft.com/en-us/sql/connect/jdbc/tracing-driver-operation|Tracing Driver Operation]]   * [[https://docs.microsoft.com/en-us/sql/connect/jdbc/tracing-driver-operation|Tracing Driver Operation]]
   * [[https://blogs.msdn.microsoft.com/psssql/2011/10/16/easy-jdbc-logging/|Easy JDBC Logging – CSS SQL Server Engineers]]   * [[https://blogs.msdn.microsoft.com/psssql/2011/10/16/easy-jdbc-logging/|Easy JDBC Logging – CSS SQL Server Engineers]]
  
 +===== Stored Procedure =====
 +==== Stored Procedure connection catalog와 SP의 catalog가 다를 때 문제 ====
 +
 +  * Stored Procedure 사용시에, JDBC Driver 버그로 인해 현재 접속한 catalog(database)가 아닌 다른 catalog의 Stored Procedure 호출시 오류가 발생한다. [[https://hibernate.atlassian.net/browse/HHH-12704|[HHH-12704] MSSQL executing StoredProcedure on different DB using dot notation throws error - Hibernate JIRA]]
 +<code>
 +The database name component of the object qualifier must be the name of the current database.
 +</code>
 +  * Spring JDBC Template의 [[https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/jdbc/core/simple/SimpleJdbcCall.html|SimpleJdbcCall]] 에서 ''withCatalogName()'', ''withSchemaName()'' 등을 사용해 명시적으로 catalog name을 지정해주면 괜찮다.
 +  * 아마도 JPA 등을 사용시에도 [[https://docs.oracle.com/javase/8/docs/api/java/sql/Connection.html#setCatalog-java.lang.String-|Connection.setCatalog()]]를 사용해도 될 것으로 보임. 작업 종료 후 원래 카탈로그로 복구 필요.
mssqlserver/jdbc.1536555454.txt.gz · 마지막으로 수정됨: 2018/09/10 13:57 저자 kwon37xi