java.sql パッケージ

java.sqlパッケージは、Javaプログラミング言語を使用してデータソース(たいていはリレーショナルデータベース)に蓄積されたデータのアクセスや処理のためのAPIを提供します。

java.sqlパッケージのインタフェース
インタフェース 説明
java.sql.Connection データベースとの接続を表現するインタフェース
java.sqlパッケージに含まれるクラス
クラス 説明
java.sql.DriverManager JDBCドライバのセットを管理する基本サービスクラス
java.sql.Time SQLのDATE型として識別されるjava.util.Dateのラッパー
java.sql.Timestamp SQLのTIMESTAMP型として識別されるjava.util.Dateのラッパー

java.sql.Connectionインタフェース

Connectionは、データベースとの接続を表現するインタフェースである。

Connectionインタフェースのメソッド
戻り値の型 メソッド 説明
void close() データベースとJDBCリソースを解放する。
void commit() トランザクションをコミットする。
void rollback() トランザクションをロールバックする。
boolean isClosed() 接続がクローズされているか否かを返す。

java.sql.DriverManager

java.sql.DriverManagerクラスは、JDBCドライバのセットを管理する基本サービス・クラスです。

メソッド

getConnection

getConnection メソッドは、与えられたデータベースURLへ接続を試みます。

static Connection getConnection(String url) throws SQLException
static Connection getConnection(String url, Properties info) throws SQLException
static Connection getConnection(String url, String user, String password) throws SQLException

java.sql.Time

java.lang.Object - java.util.Date - java.sql.Time

public class Time extends Date

このクラスは、java.util.Date のラッパーです。このラッパーによって JDBC はこれを SQL TIME 値として識別できます。time 値の JDBC エスケープ構文をサポートするためのフォーマットと構文解析を提供します。

java.sql.Timestamp

このクラスは、java.util.Date のラッパーです。このラッパーによって JDBC はこれを SQL TIMESTAMP 値として識別できます。これは SQL TIMESTAMP の nanos 値(ナノ秒の値)を保持する機能を加え、 timestamp 値の JDBC エスケープ構文をサポートするためのフォーマットと構文解析を提供します。

このタイプは java.util.Date と nanos 値とからなります。秒の整数値のみが java.util.Date コンポーネントに格納され、小数点以下の秒 (秒のナノ値) は別のコンポーネントに格納されます。getTime メソッドは、秒の整数値のみを返します。小数点以下の秒を含む時間が必要な場合は、秒の nanos 値をミリ秒に変換し getTime 値に加えなければなりません。hashcode() メソッドは、java.util.Data 実装を使用するので、計算には nanos 値を含めないことに注意しなければなりません。

java.sql.Timestampクラスのコンストラクタ
コンストラクタ 説明
Timestamp(long time ) ミリ秒の値を使用して、Timestampオブジェクトを構築する。

Timestampに現在の日時を設定する。

Calendar calendar = Calendar.getInstance();
Date now = calendar.getTime();
Timestamp timestamp = new Timestamp(now.getTime());

Timestampに任意の日時を設定する。

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmm");
Date date = sdf.parse("201707011234");
Timestamp timestamp = new Timestamp(date.getTime());

SQLException

java.sql.SQLException は、データベース・アクセス・エラーまたはその他のエラーに関する情報を提供する例外である。

public class SQLException
  extends Exception
  implements Iterable<Throwable>

java.sql.SQLException は、以下に示すインタフェースを実装している。

コンストラクタ

java.sql.SQLException は、以下に示すコンストラクタを持つ。

SQLException()
SQLException(String reason)
SQLException(String reason, String SQLState)
SQLException(String reason, String SQLState, int vendorCode)
SQLException(String reason, String sqlState, int vendorCode, Throwable cause)
SQLException(String reason, String sqlState, Throwable cause)
SQLException(String reason, Throwable cause)
SQLException(Throwable cause)

以下に示す引数を java.sql.SQLException のコンストラクタに指定することができる。

reason
例外の説明
SQLState
例外を識別するXOPENコードまたはSQL:2003コード
vendorCode
データベース・ベンダー固有の例外コード
cause
このSQLExceptionの基となる原因

getSQLState

このSQLExceptionオブジェクトのSQLStateを取得する。

public String getSQLState()
SQLSTATE
SQLSTATE 説明
00000 正常終了
01002 disconnect error
01003 null value eliminated in set function
01004 string data, right truncation
01005 insufficient item descriptor areas
01006 privilege not revoked
01007 privilege not granted
01009 search condition too long for information schema
0100A query expression too long for information schema
0100C result sets returned
0100D additional result sets returned
0100E attempt to return too many result sets
02001 no additional result sets returned
07001 using clause does not match dynamic parameter specifications
08001 SQL-client unable to establish SQL-connection
09000 triggered action exception
0A001 multiple server transactions
0E000 invalid schema name list specification
0F001 invalid specification

SQLStateを取得する例を次に示す。

try {
  //
} catch (java.sql.SQLException e) {
  String sqlState = e.getSQLState();
} 

getErrorCode

このSQLExceptionオブジェクトのベンダー固有の例外コードを取得する。

public int getErrorCode()

ベンダー固有の例外コードを取得する例を次に示す。

try {
  //
} catch (java.sql.SQLException e) {
  int errorCode = e.getErrorCode();
}