Connectionオブジェクト
Connectionインタフェースは、データベースに接続するためのクラスです。データベースに一番近い位置に存在します。接続文字列を使用してデータベースに接続したり、閉じたりします。また、トランザクションの接続管理もします
■ 主なメソッド
メソッド名 | 概要 |
---|---|
close | データベースへの接続を閉じ、JDBCリソースを解除する |
commit | 現在のトランザクションにおける変更を有効とする |
createStatement | SQL文をデータベースに送信するためのStatementオブジェクトを生成する |
getAutoCommit | 自動的にコミットするかどうかの設定を取得する |
isClosed | データベースがクローズされているかどうかを取得する |
prepareStatement | パラメーター付きのSQL文をデータベースに送信するためのPrepareStatementオブジェクトを生成する |
rollback | 現在のトランザクションにおける変更を無効とする |
setAutoCommit | 自動的にコミットするかどうかの設定をする |
次のようなプログラミング手順でデータベースに接続します。
1. java.sqlパッケージのインポート
2. JDBCドライバーのロード
3. データベースに接続
○ ファイル
次のようにファイルを作成してください。
ファイル名 | ConnectionTest.java |
---|
○ プログラム
次のようにプログラムを入力してください。
ConnectionTest.java
- import java.sql.Connection;
- import java.sql.DriverManager;
- public class ConnectionTest{
- public static void main(String[] args){
- try{
- //JDBCドライバークラスを指定する
- String drivername = "com.mysql.cj.jdbc.Driver";
- //データベースを指定する
- String url = "jdbc:mysql://localhost:3306/books? characterEncoding=utf8";
- //ユーザー名を指定する
- String username = "root";
- //パスワードを指定する
- String password = "";
- //指定したドライバークラスを読み込む
- Class.forName(drivername);
- //データベースに接続する
- Connection con = DriverManager.getConnection(url, username, password);
- System.out.println("データベースに接続しました。");
- //現在の状態を表示する
- System.out.println("現在のデータベースの状態:" + con.isClosed());
- //データベースを切断する
- con.close();
- System.out.println("データベースを切断しました。");
- //現在の状態を表示する
- System.out.println("現在のデータベースの状態:" + con.isClosed());
- }catch(Exception e){
- //例外の状態を出力する
- e.printStackTrace();
- }
- }
- }
○ コンパイルと実行
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://[サーバー名][:ポート番号][;オプション] |
27行目ではisClosedメソッドを使用しています。この行ではデータベースをクローズする前に呼び出されているため、開いている状態が表示されます。そして34行目のisClosedメソッドはクローズ後に参照しているので、閉じている状態が表示されます。