MySQL에서는 일반적으로 USE 쿼리를 사용하여 현재 작업 중인 데이터베이스를 손쉽게 변경할 수 있습니다. 이 글에서는 JDBC API를 활용해 자바 프로그램 내에서 데이터베이스를 선택하거나 전환하는 방법을 단계별로 살펴보겠습니다.
기본 문법
MySQL에서 현재 데이터베이스를 변경하는 기본 문법은 다음과 같습니다.
USE DatabaseName;
JDBC로 데이터베이스를 변경하는 절차
JDBC API를 사용해 현재 데이터베이스를 변경하려면 다음 네 가지 단계를 거쳐야 합니다.
드라이버 등록: DriverManager 클래스의 registerDriver() 메서드를 사용해 드라이버 클래스를 등록합니다. 이때 드라이버 클래스 이름을 매개변수로 전달합니다.
연결 설정: DriverManager 클래스의 getConnection() 메서드를 사용해 데이터베이스에 연결합니다. URL(String), 사용자 이름(String), 비밀번호(String)를 매개변수로 전달합니다.
Statement 객체 생성: Connection 인터페이스의 createStatement() 메서드를 사용해 Statement 객체를 생성합니다.
쿼리 실행: Statement 인터페이스의 execute() 메서드를 사용해 쿼리를 실행합니다.
예제 코드
다음 JDBC 프로그램은 MySQL에 연결한 후 mydatabase라는 이름의 데이터베이스를 선택하는 예제입니다.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class ChangeDatabaseExample {
public static void main(String args[]) throws SQLException {
//드라이버 등록
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
//연결 설정
String mysqlUrl = "jdbc:mysql://localhost/";
Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
System.out.println("Connection established......");
//Statement 객체 생성
Statement stmt = con.createStatement();
//데이터베이스 변경 쿼리
String query = "USE mydatabase";
//쿼리 실행
stmt.execute(query);
System.out.println("Database changed......");
}
}실행 결과
Connection established...... Database changed......
URL에 데이터베이스 이름을 직접 지정하는 방법
USE 쿼리를 실행하는 방법 외에도, 연결 URL 끝에 데이터베이스 이름을 추가함으로써 처음부터 원하는 데이터베이스에 바로 연결할 수 있습니다. 이 방법은 별도의 쿼리 실행 없이 한 번의 연결로 대상 데이터베이스를 지정할 수 있어 더욱 간편합니다.
//연결 설정 String url = "jdbc:mysql://localhost/mydatabase"; Connection con = DriverManager.getConnection(url, "root", "password");
두 방법 모두 실무에서 널리 사용되며, 연결 시점에 데이터베이스가 정해져 있다면 URL 지정 방식을, 런타임 중 데이터베이스를 전환해야 한다면 USE 쿼리 방식을 사용하는 것이 효율적입니다.