Javaちょこっとリファレンス
HOME > データベースコネクション

データベースコネクション

Javaからデータベースにアクセスするには、データベースコネクションを取得する必要があります。コネクションを取得して始めてSQL文を実行したりすることができます。


コネクションはJDBCドライバーを介して取得します。JDBCは「Java Database Connectivity」の略で、OracleやPostgreSQLなどの各データベースベンダーから提供されています。

なので、まず接続しようとするデータベースのJDBCドライバーを取得する必要があります。

サンプルコード

 オラクルのコネクションを取得するサンプルコード
import java.sql.DriverManager;
import java.sql.Connection;


//JDBCドライバーをロードする
Class.forName("oracle.jdbc.driver.OracleDriver");    //JDBCドライバクラス名

//コネクションを取得する
Connection conn = DriverManager.getConnection(
            "jdbc:oracle:thin:@127.0.0.1:1521:TESTDB",    //URL
            "USER01",     //ユーザID
            "PASSWORD"    //パスワード
);

//オートコミットをオフにする(任意)
conn.setAutoCommit(false);    //デフォルトはオンになっています

上記のコードでオラクルへのコネクションが取得できます。
他のDBでもクラス名とURLが異なるだけで、基本的には同じようにコネクションが取得できます。

以下、主要なデータベースのJDBCドライバクラス名とURL文字列です。

【主要なDBのJDBCクラス名とURL】
データベースクラス/URL接続文字列
Oracleクラス名oracle.jdbc.driver.OracleDriver
URLjdbc:oracle:thin:@「IP」:「ポート番号」:「DB名」
DB2クラス名com.ibm.db2.jcc.DB2Driver
URLjdbc:db2://「IP」:「ポート番号」/「DB名」
MySQLクラス名com.mysql.jdbc.Driver
URLjdbc:mysql://「IP」:「ポート番号」/「DB名」
PostgreSQLクラス名org.postgresql.Driver
URLjdbc:postgresql://「IP」:「ポート番号」/「DB名」

IP:DBサーバが存在するマシンのIPアドレスまたはホスト名
ポート番号:DBの接続を受け付けるポート番号
  (デフォルトの番号は、オラクルは1521、MySQLは3306、PostgreSQLは5432。)
DB名:接続するデータベース名(オラクルならSID)
ユーザID:データベース接続ユーザID
パスワード:ユーザIDに対応するパスワード

※JDBCドライバはjarファイルで提供されているので、そのjarファイルに対してclasspathを通しておく必要があります。


コネクションを取得した後のSELECTやINSERTなどの処理については、以下「データベースカテゴリ」の各ページをご覧ください。

主要メソッド

【java.sql.Connectionクラスの主要メソッド】
戻値型メソッド説明
voidsetAutoCommit(boolean b)自動コミットの設定
 true:オートコミット有効
 false:オートコミット無効
voidcommit()コミットを発行する
voidrollback()ロールバックを発行する
booleanisClosed()コネクションが閉じているかどうかを返す
PreparedStatementprepareStatement(String sql)SQLを設定してPreparedStatementを得る
CallableStatementprepareCall(String sql)ストアド実行用SQLを設定して
 CallableStatementを得る
SavepointsetSavepoint()セーブポイントを作成する(名前なし)
SavepointsetSavepoint(String a)セーブポイントを作成する(名前あり)
voidclose()コネクションを切断する

接続タイムアウトの設定/確認

データベースに接続する時のタイムアウト時間を設定/確認したい時には以下のようにします。

タイムアウトを設定する
import java.sql.DriverManager;


//タイムアウト時間を30秒に設定する
DriverManager.setLoginTimeout(30);

//タイムアウト時間を確認する
int val = DriverManager.getLoginTimeout();

データベースカテゴリ

HOMEへ戻る TOPへ戻る