MySQL 데이터베이스에 대한 Java 프로그램 연결이 있습니다. 동일한 연결에서 현재 데이터베이스를 다른 데이터베이스로 어떻게 변경할 수 있습니까?
다음과 같이 MySQL에 연결합니다.
DriverManager.getConnection("jdbc:mysql://"+server+"/",log,pass);
몇 가지 작업 후 동일한 연결에서 다른 mysql 데이터베이스에 연결하고 싶습니다. 어떻게 할 수 있습니까?
나는 사용하려고했다 :
Statement stat= con.createStatement();
ResultSet r=stat.executeQuery("use mysql");
그러나 사용할 데이터베이스는 변경되지 않습니다.
해결 방법
이 경고의 이유는 JDBC가 데이터베이스에 대한 일반 인터페이스이기 때문에 카탈로그
(또는 MySQL에서와 같이 데이터베이스
) 전환을 포함하여 가장 일반적인 작업에 대한 메서드를 제공하기 때문입니다. JDBC 사양 / javadoc은 또한 사람들이 데이터베이스 특정 명령 (둘 다 사용 가능한 경우)보다 API를 사용해야한다고 명시 적으로 말합니다. 여기에는 몇 가지 이유가 있습니다. 1) 데이터베이스에 독립적 인 코드를 홍보하고 2) 드라이버가 API 메서드 중 하나에 대한 응답으로 내부적으로 추가 작업을 수행 할 수 있습니다. 데이터베이스 특정 명령을 사용하면 내부 상태가 데이터베이스 상태와 일치하지 않기 때문에 드라이버가 오작동 할 수 있습니다.
setCatalog
를 호출해도 이전에 생성되거나 준비된Statement
개체에는 영향을주지 않습니다.Connection
메소드prepareStatement
또는prepareCall
이 호출 될 때 DBMS 준비 작업이 즉시 발생하는지 여부는 구현으로 정의됩니다. 이식성을 극대화하려면Statement
를 만들거나 준비하기 전에setCatalog
를 호출해야합니다.
참조 페이지 https://stackoverflow.com/questions/13433326
'MySql' 카테고리의 다른 글
MySQL : WHERE 절에서 여러 쌍으로 SELECT 행을 대량으로 만드는 방법 (0) | 2021.01.20 |
---|---|
MySQL Workbench로 MySQL을 자동으로 백업하는 방법 (0) | 2021.01.20 |
MySQL php mysql SET NAMES 'utf8'COLLATE 'utf8_unicode_ci'가 mysqli에서 작동하지 않습니다. (0) | 2021.01.20 |
MySQL 5.5 명령 줄 클라이언트에서 phpmyadmin의 데이터베이스에 액세스합니까? (0) | 2021.01.20 |
MySQL JDBC : 쿼리가 성공했는지 알아 보시겠습니까? (0) | 2021.01.20 |
댓글