MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

JDBC APIを使ってMySQLのデータベースを選択・切り替える方法

MySQLでは、USEクエリを実行することで、現在操作対象となっているデータベースを簡単に切り替えることができます。この記事では、JDBC APIを使用してMySQL上で別のデータベースへ移行(選択)する方法を解説します。

基本構文

MySQLでカレントデータベースを変更するには、以下のようにUSE文を使用します。

USE データベース名;

JDBCでデータベースを切り替える手順

JDBC APIを使って現在のデータベースを変更するには、次の手順に従います。

  • ドライバの登録:DriverManagerクラスのregisterDriver()メソッドを使ってドライバクラスを登録します。引数としてドライバクラス名を渡します。

  • 接続の確立:DriverManagerクラスのgetConnection()メソッドを使用してデータベースに接続します。URL(String)、ユーザー名(String)、パスワード(String)をパラメータとして渡します。

  • Statementオブジェクトの作成:ConnectionインターフェースのcreateStatement()メソッドを使って、Statementオブジェクトを作成します。

  • クエリの実行:Statementインターフェースのexecute()メソッドを使って、USEクエリを実行します。

サンプルコード

以下は、MySQLに接続し、「mydatabase」という名前のデータベースを選択するJDBCプログラムの例です。

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("接続が確立されました......");
        // Statementの作成
        Statement stmt = con.createStatement();
        // USEクエリ
        String query = "USE mydatabase";
        // クエリの実行
        stmt.execute(query);
        System.out.println("データベースが切り替わりました......");
    }
}

実行結果

Connection established......
Database changed......

URLで直接データベースを指定する方法

上記の方法に加えて、接続URLの末尾にデータベース名を指定することでも、目的のデータベースを選択・切り替えることができます。

// 接続の取得
String url = "jdbc:mysql://localhost/mydatabase";
Connection con = DriverManager.getConnection(url, "root", "password");

この方法では、接続時点から指定したデータベースがデフォルトとして設定されるため、別途USE文を実行する必要がありません。状況に応じて使い分けるとよいでしょう。

  1. JDBCでデータベースからファイル(CLOB)を取得する方法

    JDBCでデータベースからファイルを取得するには?データベースには、ファイルの内容をCLOB型として格納することが一般的です。ResultSetインターフェースには、このCLOB型のデータを取得するためのgetClob()メソッドとgetCharacterStream()メソッドが用意されています。どちらのメソッドも、引数として列のインデックスを表す整数、または列名を表す文字列を受け取り、指定された列の値を取得します。両者の違いは、getClob()メソッドがClobオブジェクトを返すのに対し、getCharacterStream()メソッドはCLOB型の内容を保持するReaderオブジェクト

  2. JDBCを使ってMySQLデータベースにファイルを保存・挿入する方法

    一般的に、ファイルの内容はMySQLデータベースでは Clob 型(TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT)のカラムに保存されます。 JDBCはClob型をサポートしており、これを利用することでファイルの内容をデータベースのテーブルに格納できます。 PreparedStatement インターフェースが提供する setCharacterStream() メソッドは、パラメータのインデックス(位置)を表す整数と、Readerオブジェクトを引数として受け取ります。 このメソッドを使うと、指定したインデックスのプレースホルダ(?)に対して、Readerオブジェクト(ファイ