Geekroid-ギークロイド(仮)|ITエンジニアの日常をささいな情報で彩るコラム

ITエンジニアの転職

データベースに接続/切断する

public static Connection getConnection(
String url, String user, String password) throws SQLException
url:データベース接続文字列
user:ユーザー名
password:パスワード

データベースを操作するためには、まずはデータベースに接続しなければなりません。これを行うのは、DriverManager#getConnectionメソッドです。
データベース接続文字列(引数url)は、一般的には以下の形式で表します。

jdbc:subprotocol:subname

subprotocolには、接続先のデータベースを識別するための文字列を指定します。MySQLであればmysqlですし、Oracle Databaseであればoracleです。
subnameは、接続先のデータベースに依存しますが、MySQLの場合であれば、以下のように表します。

//ホスト名/データベース名[?属性情報]

属性情報には、useUnicode(Unicodeを利用するか)、characterEncoding(利用する文字コード)、useSSL(暗号化通信を利用するか)などの情報を指定できます。
引数user/passwordは、データベースに接続する際に利用するユーザー名/パスワードです。本稿であれば、「データベースの準備」項で設定した情報を指定します。

SqlConnect.java

package com.example.mynavi.sql;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class SqlConnect {
  public static void main(String[] args) {
    try (Connection db = DriverManager.getConnection(
      "jdbc:mysql://localhost/sample?useUnicode=true&characterEncoding=UTF-8&useSSL=true", "root", "root")) {
      System.out.println("接続しました。");
    } catch (SQLException e) {
      System.out.println("接続エラー:" + e.getMessage());
    }
  }
}

↓

接続しました。

データベースを利用する際には、必ずtry-with-resources構文で宣言してください。これによって、tryブロックを抜けたところで、自動的に接続が解除されます。切断されずに残った接続は、そのままガベージコレクトで破棄されるまで維持され、接続を逼迫する原因にもなりますので、注意してください(これを接続リークと言います)。

データベース
データベースの準備
データベースに接続/切断する
prepareStatement/executeUpdateメソッド
executeQueryメソッド
setAutoCommit/commit/rollbackメソッド

Geekroid-ギークロイド(仮)|ITエンジニアの日常をささいな情報で彩るコラム

ITエンジニアの転職