Connectionオブジェクト

Connectionインタフェースは、データベースに接続するためのクラスです。データベースに一番近い位置に存在します。接続文字列を使用してデータベースに接続したり、閉じたりします。また、トランザクションの接続管理もします

■ 主なメソッド

メソッド名 概要
close データベースへの接続を閉じ、JDBCリソースを解除する
commit 現在のトランザクションにおける変更を有効とする
createStatement SQL文をデータベースに送信するためのStatementオブジェクトを生成する
getAutoCommit 自動的にコミットするかどうかの設定を取得する
isClosed データベースがクローズされているかどうかを取得する
prepareStatement パラメーター付きのSQL文をデータベースに送信するためのPrepareStatementオブジェクトを生成する
rollback 現在のトランザクションにおける変更を無効とする
setAutoCommit 自動的にコミットするかどうかの設定をする
Connectionの主なメソッド

次のようなプログラミング手順でデータベースに接続します。

1. java.sqlパッケージのインポート
2. JDBCドライバーのロード
3. データベースに接続

○ ファイル

次のようにファイルを作成してください。

ファイル名 ConnectionTest.java

サンプルダウンロード

○ プログラム

次のようにプログラムを入力してください。

ConnectionTest.java

  1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. public class ConnectionTest{
  4.     public static void main(String[] args){
  5.         try{
  6.             //JDBCドライバークラスを指定する
  7.             String drivername = "com.mysql.cj.jdbc.Driver";
  8.             //データベースを指定する
  9.             String url = "jdbc:mysql://localhost:3306/books? characterEncoding=utf8";
  10.             //ユーザー名を指定する
  11.             String username = "root";
  12.             //パスワードを指定する
  13.             String password = "";
  14.             //指定したドライバークラスを読み込む
  15.             Class.forName(drivername);
  16.             //データベースに接続する
  17.             Connection con = DriverManager.getConnection(url, username, password);
  18.             System.out.println("データベースに接続しました。");
  19.             //現在の状態を表示する
  20.             System.out.println("現在のデータベースの状態:" + con.isClosed());
  21.             //データベースを切断する
  22.             con.close();
  23.             System.out.println("データベースを切断しました。");
  24.             //現在の状態を表示する
  25.             System.out.println("現在のデータベースの状態:" + con.isClosed());
  26.         }catch(Exception e){
  27.             //例外の状態を出力する
  28.             e.printStackTrace();
  29.         }
  30.     }
  31. }

○ コンパイルと実行

C:¥work>javac ConnectionTest.java
C:¥work>java -cp mysql-connector-java-8.0.22.jar;. ConnectionTest
データベースに接続しました。
現在のデータベースの状態:false
データベースを切断しました。
現在のデータベースの状態:true

C:¥work>

○ 解説

1、2行目で記述した内容はimportの指定です。Connectionクラスは「java.sql」パッケージに所属するので、そのパッケージ名でインポート指定をします。本来ならば23行目の記述は「java.sql.Conection」というように完全修飾名で指定することになります。importキーワードでパッケージを指定することでクラス名のみで指定できるようになります。

データベースに接続する準備として、データベース用のドライバーをJavaの実行環境に読み込みます。MySQLコネクターのJarファイルの中から、ドライバーにあたるクラスを読み込ませます。今回は「com.mysql.jdbc.Driver」クラスを指定します。このクラスを20行目の「Class.forName()」でロードしています。これにより、23行目でデータベースに接続するときに、あらかじめ読み込んだドライバーを使うようになります。

データベースに接続するためには23行目のDriverManagerクラスのgetConnectionメソッドを使用します。このメソッドは、データベースとの接続を表すConnectionオブジェクトを取得します。使用する際に引数で接続するデータベースのURL、ユーザー名、パスワードを指定します。

接続するデータベースはURLで指定します。データベース製品ごとに次のようなURLを指定します。

データベース製品 URL書式
MySQL jdbc:mysql://[サーバー名][:ポート番号]/[データベース名]
PostgreSQL jdbc:postgresql://[サーバー名][:ポート番号]/[データベース名]
Oracle jdbc:oracle:thin:@[サーバー名][:ポート番号][:SID]
SQL Server jdbc:sqlserver://[サーバー名][:ポート番号][;オプション]
データベース製品ごとのURL

27行目ではisClosedメソッドを使用しています。この行ではデータベースをクローズする前に呼び出されているため、開いている状態が表示されます。そして34行目のisClosedメソッドはクローズ後に参照しているので、閉じている状態が表示されます。

データベースとConnectionオブジェクトの関係
データベースとConnectionオブジェクトの関係

前へ   次へ