반응형
특정 JDBC 접속의 데이터베이스 유형을 판별하려면 어떻게 해야 합니까?
3개의 데이터베이스(Oracle, sybase, MS-Server)에 대해 저장 프로시저/함수를 반환하는 결과 세트를 처리해야 합니다.절차/기능은 일반적으로 동일하지만 Oracle에서는 호출이 조금 다릅니다.
statement.registerOutParameter(1, oracle.jdbc.OracleTypes.CURSOR);
...
statement.execute();
ResultSet rs = (ResultSet)statement.getObject(1);
JDBC는 일반적인 처리 방법을 제공하지 않기 때문에 코드 내의 다양한 유형의 DB를 구분해야 합니다.연결은 제공되지만 DB가 Oracle인지 확인하는 가장 좋은 방법을 알 수 없습니다.기사 이름은 사용할 수 있지만, 좀 더 깨끗한 방법을 찾고 싶습니다.
DatabaseMetaData 클래스를 사용하길 원할 것 같습니다.DatabaseMetaData.getDatabaseProductName이면 충분합니다.단, 사용하고 있는 특정 데이터베이스의 특정 버전에 의존하는 코드가 있는 경우 getDatabaseProductVersion 메서드를 사용할 수도 있습니다.
org.apache.ddlutils 클래스 Platformutils를 사용할 수 있습니다.
databaseName = new PlatformUtils().determineDatabaseType(dataSource)
언급URL : https://stackoverflow.com/questions/254213/how-to-determine-database-type-for-a-given-jdbc-connection
반응형
'programing' 카테고리의 다른 글
JSON을 사용하여 개체 직렬화/비직렬화 사전.그물 (0) | 2023.02.22 |
---|---|
리액트 테스트 라이브러리를 사용하여 html 태그를 포함하는 텍스트 문자열로 쿼리하려면 어떻게 해야 합니다. (0) | 2023.02.22 |
Oracle이 없는 경우 삽입 (0) | 2023.02.22 |
Preact에 의해 잘못된 컴포넌트가 렌더링됨 (0) | 2023.02.22 |
WordPress 플러그인의 Array-to-CSV 내보내기 기능에 문제가 있습니다. (0) | 2023.02.22 |