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文字列です。
データベース | クラス/URL | 接続文字列 |
---|---|---|
Oracle | クラス名 | oracle.jdbc.driver.OracleDriver |
URL | jdbc:oracle:thin:@「IP」:「ポート番号」:「DB名」 | |
DB2 | クラス名 | com.ibm.db2.jcc.DB2Driver |
URL | jdbc:db2://「IP」:「ポート番号」/「DB名」 | |
MySQL | クラス名 | com.mysql.jdbc.Driver |
URL | jdbc:mysql://「IP」:「ポート番号」/「DB名」 | |
PostgreSQL | クラス名 | org.postgresql.Driver |
URL | jdbc:postgresql://「IP」:「ポート番号」/「DB名」 |
・IP:DBサーバが存在するマシンのIPアドレスまたはホスト名
・ポート番号:DBの接続を受け付けるポート番号
(デフォルトの番号は、オラクルは1521、MySQLは3306、PostgreSQLは5432。)
・DB名:接続するデータベース名(オラクルならSID)
・ユーザID:データベース接続ユーザID
・パスワード:ユーザIDに対応するパスワード
※JDBCドライバはjarファイルで提供されているので、そのjarファイルに対してclasspathを通しておく必要があります。
コネクションを取得した後のSELECTやINSERTなどの処理については、以下「データベースカテゴリ」の各ページをご覧ください。
主要メソッド
戻値型 | メソッド | 説明 |
---|---|---|
void | setAutoCommit(boolean b) | 自動コミットの設定 true:オートコミット有効 false:オートコミット無効 |
void | commit() | コミットを発行する |
void | rollback() | ロールバックを発行する |
boolean | isClosed() | コネクションが閉じているかどうかを返す |
PreparedStatement | prepareStatement(String sql) | SQLを設定してPreparedStatementを得る |
CallableStatement | prepareCall(String sql) | ストアド実行用SQLを設定して CallableStatementを得る |
Savepoint | setSavepoint() | セーブポイントを作成する(名前なし) |
Savepoint | setSavepoint(String a) | セーブポイントを作成する(名前あり) |
void | close() | コネクションを切断する |
接続タイムアウトの設定/確認
データベースに接続する時のタイムアウト時間を設定/確認したい時には以下のようにします。
- タイムアウトを設定する
-
import java.sql.DriverManager; //タイムアウト時間を30秒に設定する DriverManager.setLoginTimeout(30); //タイムアウト時間を確認する int val = DriverManager.getLoginTimeout();
データベースカテゴリ