public static class DataSource.Instance
extends java.lang.Object
複数のデータソースを扱う場合は、明示的にDataSource.Instanceのインスタンスを作成する必要があります。
| コンストラクタと説明 |
|---|
Instance(javax.sql.ConnectionPoolDataSource datasource)
ConnectionPoolDataSourceインターフェースを実装したデータソースを持つDataSource.Instanceを作成します。 |
Instance(javax.sql.ConnectionPoolDataSource datasource,
java.lang.String username,
java.lang.String password)
ConnectionPoolDataSourceインターフェースを実装したデータソースを持つDataSource.Instanceを作成します。 |
Instance(javax.sql.DataSource datasource)
DataSourceインターフェースを実装したデータソースを持つDataSource.Instanceを作成します。 |
Instance(javax.sql.DataSource datasource,
java.lang.String username,
java.lang.String password)
DataSourceインターフェースを実装したデータソースを持つDataSource.Instanceを作成します。 |
Instance(java.lang.String jndiNameOrJdbcUrl)
JNDIリソース名またはJDBC接続文字列を指定してDataSource.Instanceを作成します。
|
Instance(java.lang.String jdbcUrl,
java.util.Properties info)
JDBC接続文字列を指定してDataSource.Instanceを作成します。
|
Instance(java.lang.String jndiNameOrJdbcUrl,
java.lang.String username,
java.lang.String password)
JNDIリソース名またはJDBC接続文字列を指定してDataSource.Instanceを作成します。
|
| 修飾子とタイプ | メソッドと説明 |
|---|---|
Transaction |
beginTransaction()
新しいデータベースへの接続を作成してトランザクションを開始します。
|
Transaction |
beginTransaction(IsolationLevel level)
新しいデータベースへの接続を作成して指定された分離レベルのトランザクションを開始します。
|
void |
close()
データソースがjavax.sql.ConnectionPoolDataSrouceを実装している場合、このメソッドは接続プールを閉じます。
|
int[] |
delete(java.util.Collection<?> objects)
指定された複数のオブジェクトそれぞれに対してDELETE文を構築し、データソースから行の削除を試みます。
|
int[] |
delete(java.lang.Object... objects)
指定された複数のオブジェクトそれぞれに対してDELETE文を構築し、データソースから行の削除を試みます。
|
int |
delete(java.lang.Object obj)
指定されたオブジェクトでDELETE文を構築し、データソースから行の削除を試みます。
|
java.sql.ResultSet |
executeQuery(NamedParameterStatement statement)
指定された名前付きパラメーターステートメントを実行し、単一のResultSetオブジェクトを返します。
|
java.sql.ResultSet |
executeQuery(java.lang.String sql)
指定されたSQL文を実行し、単一のResultSetオブジェクトを返す、します。
|
java.sql.ResultSet |
executeQuery(java.lang.String sql,
java.util.Collection<?> parameters)
指定されたSQL文にパラメーターを設定して実行し、単一のResultSetオブジェクトを返します。
|
java.sql.ResultSet |
executeQuery(java.lang.String sql,
java.lang.Object... parameters)
指定されたSQL文にパラメーターを設定して実行し、単一のResultSetオブジェクトを返します。
|
java.sql.ResultSet |
executeQueryWaitForRows(long timeout,
NamedParameterStatement statement)
1行以上の結果が得られるか、あらかじめ指定されている量の実時間が経過するまで、指定されたSQLを繰り返し実行します。
|
java.sql.ResultSet |
executeQueryWaitForRows(long timeout,
java.lang.String sql,
java.util.Collection<?> parameters)
1行以上の結果が得られるか、あらかじめ指定されている量の実時間が経過するまで、指定されたSQLを繰り返し実行します。
|
java.sql.ResultSet |
executeQueryWaitForRows(long timeout,
java.lang.String sql,
java.lang.Object... parameters)
1行以上の結果が得られるか、あらかじめ指定されている量の実時間が経過するまで、指定されたSQLを繰り返し実行します。
|
java.sql.ResultSet |
executeQueryWaitForRows(Monitor.MultipleObjects waiters,
NamedParameterStatement statement)
1行以上の結果が得られるか、あらかじめ指定されている量の実時間が経過するまで、指定されたSQLを繰り返し実行します。
|
java.sql.ResultSet |
executeQueryWaitForRows(Monitor.MultipleObjects waiters,
java.lang.String sql,
java.util.Collection<?> parameters)
1行以上の結果が得られるか、あらかじめ指定されている量の実時間が経過するまで、指定されたSQLを繰り返し実行します。
|
java.sql.ResultSet |
executeQueryWaitForRows(Monitor.MultipleObjects waiters,
java.lang.String sql,
java.lang.Object... parameters)
1行以上の結果が得られるか、あらかじめ指定されている量の実時間が経過するまで、指定されたSQLを繰り返し実行します。
|
<T> T |
executeScalar(NamedParameterStatement statement)
指定されたSQL文を実行し、そのクエリーが返す結果セットの最初の行にある最初の列を返します。
|
<T> T |
executeScalar(java.lang.String sql)
指定されたSQL文を実行し、そのクエリーが返す結果セットの最初の行にある最初の列を返します。
|
<T> T |
executeScalar(java.lang.String sql,
java.util.Collection<?> parameters)
指定されたSQL文を実行し、そのクエリーが返す結果セットの最初の行にある最初の列を返します。
|
<T> T |
executeScalar(java.lang.String sql,
java.lang.Object... parameters)
指定されたSQL文を実行し、そのクエリーが返す結果セットの最初の行にある最初の列を返します。
|
int |
executeUpdate(NamedParameterStatement statement)
SQL文を実行します。
|
int |
executeUpdate(java.lang.Object notifier,
NamedParameterStatement statement)
SQL文を実行して待機スレッドを再開させます。
|
int |
executeUpdate(java.lang.Object notifier,
java.lang.String sql,
java.util.Collection<?> parameters)
SQL文を実行して待機スレッドを再開させます。
|
int |
executeUpdate(java.lang.Object notifier,
java.lang.String sql,
java.lang.Object... parameters)
SQL文を実行して待機スレッドを再開させます。
|
int |
executeUpdate(java.lang.String sql)
SQL文を実行します。
|
int |
executeUpdate(java.lang.String sql,
java.util.Collection<?> parameters)
SQL文を実行します。
|
int |
executeUpdate(java.lang.String sql,
java.lang.Object... parameters)
SQL文を実行します。
|
java.sql.Connection |
getConnection()
データソースへの接続を取得します。
|
java.sql.Connection |
getConnection(int options) |
SqlExecutionHandler |
getSqlExecutionHandler()
SQL実行ハンドラーを取得します。
|
int[] |
insert(java.util.Collection<?> objects)
指定された複数のオブジェクトそれぞれに対してINSERT文を構築し、データソースへ行の追加を試みます。
|
int[] |
insert(java.lang.Object... objects)
指定された複数のオブジェクトそれぞれに対してINSERT文を構築し、データソースへ行の追加を試みます。
|
int |
insert(java.lang.Object obj)
指定されたオブジェクトでINSERT文を構築し、データソースへ行の追加を試みます。
|
int[] |
merge(java.util.Collection<?> objects)
指定された複数のオブジェクトそれぞれに対してMERGE文を構築し、データソースへ行の追加または更新を試みます。
|
int[] |
merge(java.lang.Object... objects)
指定された複数のオブジェクトそれぞれに対してMERGE文を構築し、データソースへ行の追加または更新を試みます。
|
int |
merge(java.lang.Object obj)
指定されたオブジェクトでMERGE文を構築し、データソースへ行の追加または更新を試みます。
|
javax.sql.rowset.CachedRowSet |
populate(java.sql.ResultSet rs)
指定したResultSetオブジェクトのデータを読み込んでCachedRowSetを作成します。
|
<T> T |
select(java.lang.Class<T> returnClass)
指定したクラスでSELECT文を構築し、そのクエリーが返す結果セットの最初の行を指定されたクラスのオブジェクトとして返します。
|
<T> T |
select(java.lang.Class<T> returnClass,
NamedParameterStatement statement)
指定された名前付きパラメーターステートメントを実行し、そのクエリーが返す結果セットの最初の行を指定されたクラスのオブジェクトとして返します。
|
<T> T |
select(java.lang.Class<T> returnClass,
java.lang.Object obj)
指定されたオブジェクトでSELECT文を構築し、そのクエリーが返す結果セットの最初の行を指定されたクラスのオブジェクトとして返します。
|
<T> T |
select(java.lang.Class<T> returnClass,
java.lang.String sql)
指定されたSQL文を実行し、そのクエリーが返す結果セットの最初の行を指定されたクラスのオブジェクトとして返します。
|
<T> T |
select(java.lang.Class<T> returnClass,
java.lang.String sql,
java.util.Collection<?> parameters)
指定されたSQL文を実行し、そのクエリーが返す結果セットの最初の行を指定されたクラスのオブジェクトとして返します。
|
<T> T |
select(java.lang.Class<T> returnClass,
java.lang.String sql,
java.lang.Object... parameters)
指定されたSQL文を実行し、そのクエリーが返す結果セットの最初の行を指定されたクラスのオブジェクトとして返します。
|
<T> T |
select(java.lang.Object obj)
指定されたオブジェクトでSELECT文を構築し、そのクエリーが返す結果セットの最初の行をオブジェクトとして返します。
|
<T> T |
select(java.lang.String columnName,
java.lang.Object obj)
指定されたオブジェクトでSELECT文を構築し、そのクエリーが返す結果セットの最初の行から指定された列名の値を返します。
|
<T> java.util.List<T> |
selectAsList(java.lang.Class<T> returnClass)
指定されたクラスでSELECT文を構築し、そのクエリーが返す結果セットをクラスのリストとして返します。
|
<T> java.util.List<T> |
selectAsList(java.lang.Class<T> returnClass,
NamedParameterStatement statement)
指定された名前付きパラメーターステートメントを実行し、そのクエリーが返す結果セットを指定されたクラスのリストとして返します。
|
<T> java.util.List<T> |
selectAsList(java.lang.Class<T> returnClass,
java.lang.Object obj)
指定されたオブジェクトでSELECT文を構築し、そのクエリーが返す結果セットを指定されたクラスのリストとして返します。
|
<T> java.util.List<T> |
selectAsList(java.lang.Class<T> returnClass,
java.lang.String sql)
指定されたSQL文を実行し、そのクエリーが返す結果セットを指定されたクラスのリストとして返します。
|
<T> java.util.List<T> |
selectAsList(java.lang.Class<T> returnClass,
java.lang.String sql,
java.util.Collection<?> parameters)
指定されたSQL文にパラメーターを設定して実行し、そのクエリーが返す結果セットを指定されたクラスのリストとして返します。
|
<T> java.util.List<T> |
selectAsList(java.lang.Class<T> returnClass,
java.lang.String sql,
java.lang.Object... parameters)
指定されたSQL文にパラメーターを設定して実行し、そのクエリーが返す結果セットを指定されたクラスのリストとして返します。
|
<T> java.util.List<T> |
selectAsList(java.lang.Object obj)
指定されたオブジェクトでSELECT文を構築し、そのクエリーが返す結果セットをオブジェクトのクラスのリストとして返します。
|
void |
setSqlExecutionHandler(SqlExecutionHandler sqlExecutionHandler)
SQL実行ハンドラーを設定します。
|
int[] |
update(java.util.Collection<?> objects)
指定された複数のオブジェクトそれぞれに対してUPDATE文を構築し、データソースへ行の更新を試みます。
|
int[] |
update(java.lang.Object... objects)
指定された複数のオブジェクトそれぞれに対してUPDATE文を構築し、データソースへ行の更新を試みます。
|
int |
update(java.lang.Object obj)
指定されたオブジェクトでUPDATE文を構築し、データソースへ行の更新を試みます。
|
public Instance(java.lang.String jndiNameOrJdbcUrl)
throws javax.naming.NamingException,
java.sql.SQLException
jndiNameOrJdbcUrl - JNDIリソース名またはJDBC接続文字列javax.naming.NamingException - ネーミング例外が発生した場合java.sql.SQLException - データベースアクセスエラーが発生した場合public Instance(java.lang.String jndiNameOrJdbcUrl,
java.lang.String username,
java.lang.String password)
throws javax.naming.NamingException,
java.sql.SQLException
jndiNameOrJdbcUrl - JNDIリソース名またはJDBC接続文字列username - データベース接続に使用するユーザー名password - データベース接続に使用するユーザーのパスワードjavax.naming.NamingException - ネーミング例外が発生した場合java.sql.SQLException - データベースアクセスエラーが発生した場合public Instance(java.lang.String jdbcUrl,
java.util.Properties info)
throws java.sql.SQLException
jdbcUrl - JDBC接続文字列info - ユーザー名やパスワードを保持するプロパティ情報java.sql.SQLException - データベースアクセスエラーが発生した場合public Instance(javax.sql.DataSource datasource)
throws java.sql.SQLException
DataSourceインターフェースを実装したデータソースを持つDataSource.Instanceを作成します。datasource - DataSourceインターフェースを実装しているデータソースjava.sql.SQLException - データベースアクセスエラーが発生した場合public Instance(javax.sql.DataSource datasource,
java.lang.String username,
java.lang.String password)
throws java.sql.SQLException
DataSourceインターフェースを実装したデータソースを持つDataSource.Instanceを作成します。
データベースへの接続には username と password を使用します。datasource - DataSourceインターフェースを実装しているデータソースusername - データベース接続に使用するユーザー名password - データベース接続に使用するユーザーのパスワードjava.sql.SQLException - データベースアクセスエラーが発生した場合public Instance(javax.sql.ConnectionPoolDataSource datasource)
throws java.sql.SQLException
ConnectionPoolDataSourceインターフェースを実装したデータソースを持つDataSource.Instanceを作成します。datasource - ConnectionPoolDataSourceインターフェースを実装しているデータソースjava.sql.SQLException - データベースアクセスエラーが発生した場合public Instance(javax.sql.ConnectionPoolDataSource datasource,
java.lang.String username,
java.lang.String password)
throws java.sql.SQLException
ConnectionPoolDataSourceインターフェースを実装したデータソースを持つDataSource.Instanceを作成します。
データベースへの接続には username と password を使用します。datasource - ConnectionPoolDataSourceインターフェースを実装しているデータソースusername - データベース接続に使用するユーザー名password - データベース接続に使用するユーザーのパスワードjava.sql.SQLException - データベースアクセスエラーが発生した場合public void setSqlExecutionHandler(SqlExecutionHandler sqlExecutionHandler)
sqlExecutionHandler - SQL実行ハンドラーpublic SqlExecutionHandler getSqlExecutionHandler()
public Transaction beginTransaction() throws java.sql.SQLException
java.sql.SQLException - データベースアクセスエラーが発生した場合public Transaction beginTransaction(IsolationLevel level) throws java.sql.SQLException
level - トランザクション分離レベルjava.sql.SQLException - データベースアクセスエラーが発生した場合public java.sql.Connection getConnection()
throws java.sql.SQLException
データソースがjavax.sql.ConnectionPoolDataSourceインターフェースを実装している場合、 このメソッドはプールされている接続を返します。
java.sql.SQLException - データベースアクセスエラーが発生した場合public java.sql.Connection getConnection(int options)
throws java.sql.SQLException
java.sql.SQLExceptionpublic void close()
接続プールが閉じられると、プールされているすべての接続も閉じられます。 ただし、getConnection()メソッドによって払い出されているアクティブな接続が強制的に閉じられることはありません。 このメソッドの呼び出し以降、getConnection()メソッドによって払い出されているアクティブな接続のclose()メソッドを呼び出すと、 接続はプールに戻されるのではなく、データソースとの物理的な接続が閉じられます。
public javax.sql.rowset.CachedRowSet populate(java.sql.ResultSet rs)
throws java.sql.SQLException
CachedRowSet オブジェクトは、メモリー内に行をキャッシュする、データ行のコンテナであり、常にそのデータソースに接続していなくても処理を実行できます。
rs - ResultSetオブジェクトjava.sql.SQLException - データベースアクセスエラーが発生した場合public java.sql.ResultSet executeQuery(java.lang.String sql)
throws java.sql.SQLException,
java.io.IOException
返されるResultSetオブジェクトはメモリーにキャッシュされた非接続の行セットです。
sql - データベースに送られるSQL文。通常は静的なSELECT文です。java.sql.SQLException - データベースアクセスエラーが発生した場合java.io.IOException - 暗黙的トランザクションで自動クローズ例外が発生した場合public java.sql.ResultSet executeQuery(java.lang.String sql,
java.lang.Object... parameters)
throws java.sql.SQLException,
java.io.IOException
このメソッドに指定するSQL文はパラメータのプレースホルダーを使うことができます。 パラメーターのプレースホルダーは ? で指定します。 パラメーターのプレースホルダーには第2引数で指定したparametersが順番に割り当てられます。
返されるResultSetオブジェクトはメモリーにキャッシュされた非接続の行セットです。
sql - プレースホルダー ? を含むSQL文parameters - プレースホルダーに設定されるパラメーターjava.sql.SQLException - データベースアクセスエラーが発生した場合java.io.IOException - 暗黙的トランザクションで自動クローズ例外が発生した場合public java.sql.ResultSet executeQuery(java.lang.String sql,
java.util.Collection<?> parameters)
throws java.sql.SQLException,
java.io.IOException
このメソッドに指定するSQL文はパラメータのプレースホルダーを使うことができます。 パラメーターのプレースホルダーは ? で指定します。 パラメーターのプレースホルダーには第2引数で指定したparametersが順番に割り当てられます。
返されるResultSetオブジェクトはメモリーにキャッシュされた非接続の行セットです。
sql - プレースホルダー ? を含むSQL文parameters - プレースホルダーに設定されるパラメーターjava.sql.SQLException - データベースアクセスエラーが発生した場合java.io.IOException - 暗黙的トランザクションで自動クローズ例外が発生した場合public java.sql.ResultSet executeQuery(NamedParameterStatement statement) throws java.sql.SQLException, java.io.IOException
このメソッドには名前付きパラメーター機能を提供するNamedParameterStatementを指定します。
返されるResultSetオブジェクトはメモリーにキャッシュされた非接続の行セットです。
statement - 名前付きパラメーターステートメントjava.sql.SQLException - データベースアクセスエラーが発生した場合java.io.IOException - 暗黙的トランザクションで自動クローズ例外が発生した場合NamedParameterStatementpublic int executeUpdate(java.lang.String sql)
throws java.sql.SQLException,
java.io.IOException
それはSQLデータ操作言語(DML)文(INSERT文、UPDATE文、DELETE文など)であるか、DDL文のような何も返さないSQL文でなければなりません。
sql - 結果セットを返さないSQL文java.sql.SQLException - データベースアクセスエラーが発生した場合java.io.IOException - 暗黙的トランザクションで自動クローズ例外が発生した場合public int executeUpdate(java.lang.String sql,
java.lang.Object... parameters)
throws java.sql.SQLException,
java.io.IOException
それはSQLデータ操作言語(DML)文(INSERT文、UPDATE文、DELETE文など)であるか、DDL文のような何も返さないSQL文でなければなりません。
このメソッドに指定するSQL文はパラメータのプレースホルダーを使うことができます。 パラメーターのプレースホルダーは ? で指定します。 パラメーターのプレースホルダーには第2引数で指定したparametersが順番に割り当てられます。 パラメーターが必要ない場合は第2引数を省略してこのメソッドを呼び出します。
sql - 結果セットを返さないSQL文parameters - プレースホルダーに設定されるパラメーターjava.sql.SQLException - データベースアクセスエラーが発生した場合java.io.IOException - 暗黙的トランザクションで自動クローズ例外が発生した場合public int executeUpdate(java.lang.String sql,
java.util.Collection<?> parameters)
throws java.sql.SQLException,
java.io.IOException
それはSQLデータ操作言語(DML)文(INSERT文、UPDATE文、DELETE文など)であるか、DDL文のような何も返さないSQL文でなければなりません。
このメソッドに指定するSQL文はパラメータのプレースホルダーを使うことができます。 パラメーターのプレースホルダーは ? で指定します。 パラメーターのプレースホルダーには第2引数で指定したparametersが順番に割り当てられます。 パラメーターが必要ない場合は第2引数を省略してこのメソッドを呼び出します。
sql - 結果セットを返さないSQL文parameters - プレースホルダーに設定されるパラメーターjava.sql.SQLException - データベースアクセスエラーが発生した場合java.io.IOException - 暗黙的トランザクションで自動クローズ例外が発生した場合public int executeUpdate(NamedParameterStatement statement) throws java.sql.SQLException, java.io.IOException
このメソッドには名前付きパラメーター機能を提供するNamedParameterStatementを指定します。
それはSQLデータ操作言語(DML)文(INSERT文、UPDATE文、DELETE文など)であるか、DDL文のような何も返さないSQL文でなければなりません。
statement - 名前付きパラメーターステートメントjava.sql.SQLException - データベースアクセスエラーが発生した場合java.io.IOException - 暗黙的トランザクションで自動クローズ例外が発生した場合public int executeUpdate(java.lang.Object notifier,
java.lang.String sql,
java.lang.Object... parameters)
throws java.sql.SQLException,
java.io.IOException
SQL文を実行して影響を受けた行数が1行以上あった場合、このデータソースが保持する Monitor を使って
notifierオブジェクトに通知を送ります。notifierオブジェクトを含むMultipleObjectsで待機しているスレッドがあれば再開されます。
SQL文はデータ操作言語(DML)文(INSERT文、UPDATE文、DELETE文など)であるか、DDL文のような何も返さない文でなければなりません。
このメソッドに指定するSQL文はパラメータのプレースホルダーを使うことができます。 パラメーターのプレースホルダーは ? で指定します。 パラメーターのプレースホルダーには第2引数で指定したparametersが順番に割り当てられます。 パラメーターが必要ない場合は第2引数を省略してこのメソッドを呼び出します。
notifier - 待機中のスレッドを再開させるためのオブジェクトsql - 結果セットを返さないSQL文parameters - プレースホルダーに設定されるパラメーターjava.sql.SQLException - データベースアクセスエラーが発生した場合java.io.IOException - 暗黙的トランザクションで自動クローズ例外が発生した場合public int executeUpdate(java.lang.Object notifier,
java.lang.String sql,
java.util.Collection<?> parameters)
throws java.sql.SQLException,
java.io.IOException
SQL文を実行して影響を受けた行数が1行以上あった場合、このデータソースが保持する Monitor を使って
notifierオブジェクトに通知を送ります。notifierオブジェクトを含むMultipleObjectsで待機しているスレッドがあれば再開されます。
SQL文はデータ操作言語(DML)文(INSERT文、UPDATE文、DELETE文など)であるか、DDL文のような何も返さない文でなければなりません。
このメソッドに指定するSQL文はパラメータのプレースホルダーを使うことができます。 パラメーターのプレースホルダーは ? で指定します。 パラメーターのプレースホルダーには第2引数で指定したparametersが順番に割り当てられます。 パラメーターが必要ない場合は第2引数を省略してこのメソッドを呼び出します。
notifier - 待機中のスレッドを再開させるためのオブジェクトsql - 結果セットを返さないSQL文parameters - プレースホルダーに設定されるパラメーターjava.sql.SQLException - データベースアクセスエラーが発生した場合java.io.IOException - 暗黙的トランザクションで自動クローズ例外が発生した場合public int executeUpdate(java.lang.Object notifier,
NamedParameterStatement statement)
throws java.sql.SQLException,
java.io.IOException
SQL文を実行して影響を受けた行数が1行以上あった場合、このデータソースが保持する Monitor を使って
notifierオブジェクトに通知を送ります。notifierオブジェクトを含むMultipleObjectsで待機しているスレッドがあれば再開されます。
このメソッドには名前付きパラメーター機能を提供するNamedParameterStatementを指定します。
SQL文はデータ操作言語(DML)文(INSERT文、UPDATE文、DELETE文など)であるか、DDL文のような何も返さない文でなければなりません。
notifier - 待機中のスレッドを再開させるためのオブジェクトstatement - 結果セットを返さないSQL文java.sql.SQLException - データベースアクセスエラーが発生した場合java.io.IOException - 暗黙的トランザクションで自動クローズ例外が発生した場合NamedParameterStatementpublic java.sql.ResultSet executeQueryWaitForRows(long timeout,
java.lang.String sql,
java.lang.Object... parameters)
throws java.sql.SQLException,
java.util.concurrent.TimeoutException,
java.lang.InterruptedException,
java.io.IOException
SQL文を実行して返された結果行数が 0 である場合、暗黙的な待機オブジェクトを使ってこのスレッドを待機させます。
暗黙的な待機オブジェクトはSQL文に最初に出現するテーブル名を持つString型です。
ほかのスレッドがこのテーブル名を指定して、データソースが保持する Monitor のnotifyAll(String)メソッドを呼び出すと、
スレッドが再開され、再び、SQL文が実行されます。
このメソッドに指定するSQL文はパラメータのプレースホルダーを使うことができます。 パラメーターのプレースホルダーは ? で指定します。 パラメーターのプレースホルダーには第3引数で指定したparametersが順番に割り当てられます。 パラメーターが必要ない場合は第3引数を省略してこのメソッドを呼び出します。
返されるResultSetオブジェクトはメモリーにキャッシュされた非接続の行セットです。
timeout - ミリ秒単位の待機時間sql - プレースホルダー ? を含むSQL文parameters - プレースホルダーに設定されるパラメーターjava.sql.SQLException - データベースアクセスエラーが発生した場合java.util.concurrent.TimeoutException - 指定された待機時間が経過した場合java.lang.InterruptedException - 現在のスレッドが通知を待機する前または待機中に、いずれかのスレッドが現在のスレッドに割り込んだ場合。この例外がスローされると、現在のスレッドの「割り込みステータス」はクリアされます。java.io.IOException - 暗黙的トランザクションで自動クローズ例外が発生した場合public java.sql.ResultSet executeQueryWaitForRows(long timeout,
java.lang.String sql,
java.util.Collection<?> parameters)
throws java.sql.SQLException,
java.util.concurrent.TimeoutException,
java.lang.InterruptedException,
java.io.IOException
SQL文を実行して返された結果行数が 0 である場合、暗黙的な待機オブジェクトを使ってこのスレッドを待機させます。
暗黙的な待機オブジェクトはSQL文に最初に出現するテーブル名を持つString型です。
ほかのスレッドがこのテーブル名を指定して、データソースが保持する Monitor のnotifyAll(String)メソッドを呼び出すと、
スレッドが再開され、再び、SQL文が実行されます。
このメソッドに指定するSQL文はパラメータのプレースホルダーを使うことができます。 パラメーターのプレースホルダーは ? で指定します。 パラメーターのプレースホルダーには第3引数で指定したparametersが順番に割り当てられます。 パラメーターが必要ない場合は第3引数を省略してこのメソッドを呼び出します。
返されるResultSetオブジェクトはメモリーにキャッシュされた非接続の行セットです。
timeout - ミリ秒単位の待機時間sql - プレースホルダー ? を含むSQL文parameters - プレースホルダーに設定されるパラメーターjava.sql.SQLException - データベースアクセスエラーが発生した場合java.util.concurrent.TimeoutException - 指定された待機時間が経過した場合java.lang.InterruptedException - 現在のスレッドが通知を待機する前または待機中に、いずれかのスレッドが現在のスレッドに割り込んだ場合。この例外がスローされると、現在のスレッドの「割り込みステータス」はクリアされます。java.io.IOException - 暗黙的トランザクションで自動クローズ例外が発生した場合public java.sql.ResultSet executeQueryWaitForRows(long timeout,
NamedParameterStatement statement)
throws java.sql.SQLException,
java.util.concurrent.TimeoutException,
java.lang.InterruptedException,
java.io.IOException
SQL文を実行して返された結果行数が 0 である場合、暗黙的な待機オブジェクトを使ってこのスレッドを待機させます。
暗黙的な待機オブジェクトはSQL文に最初に出現するテーブル名を持つString型です。
ほかのスレッドがこのテーブル名を指定して、データソースが保持する Monitor のnotifyAll(Object)メソッドを呼び出すと、
スレッドが再開され、再び、SQL文が実行されます。
このメソッドには名前付きパラメーター機能を提供するNamedParameterStatementを指定します。
返されるResultSetオブジェクトはメモリーにキャッシュされた非接続の行セットです。
timeout - ミリ秒単位の待機時間statement - 名前付きパラメーターステートメントjava.sql.SQLException - データベースアクセスエラーが発生した場合java.util.concurrent.TimeoutException - 指定された待機時間が経過した場合java.lang.InterruptedException - 現在のスレッドが通知を待機する前または待機中に、いずれかのスレッドが現在のスレッドに割り込んだ場合。この例外がスローされると、現在のスレッドの「割り込みステータス」はクリアされます。java.io.IOException - 暗黙的トランザクションで自動クローズ例外が発生した場合NamedParameterStatementpublic java.sql.ResultSet executeQueryWaitForRows(Monitor.MultipleObjects waiters, java.lang.String sql, java.lang.Object... parameters) throws java.sql.SQLException, java.util.concurrent.TimeoutException, java.lang.InterruptedException, java.io.IOException
SQL文を実行して返された結果行数が 0 である場合、指定された Monitor.MultipleObjects waitersを使ってこのスレッドを待機させます。
ほかのスレッドがwaitersに含まれるオブジェクトのいずれかを指定して、データソースが保持する Monitor のnotifyAll(Object)メソッドを呼び出すと、
スレッドが再開され、再び、SQL文が実行されます。
このメソッドに指定するSQL文はパラメータのプレースホルダーを使うことができます。 パラメーターのプレースホルダーは ? で指定します。 パラメーターのプレースホルダーには第3引数で指定したparametersが順番に割り当てられます。 パラメーターが必要ない場合は第3引数を省略してこのメソッドを呼び出します。
返されるResultSetオブジェクトはメモリーにキャッシュされた非接続の行セットです。
waiters - 待機中のスレッドを再開させるためのオブジェクトを含むMultipleObjectssql - プレースホルダー ? を含むSQL文parameters - プレースホルダーに設定されるパラメーターjava.sql.SQLException - データベースアクセスエラーが発生した場合java.util.concurrent.TimeoutException - 指定された待機時間が経過した場合java.lang.InterruptedException - 現在のスレッドが通知を待機する前または待機中に、いずれかのスレッドが現在のスレッドに割り込んだ場合。この例外がスローされると、現在のスレッドの「割り込みステータス」はクリアされます。java.io.IOException - 暗黙的トランザクションで自動クローズ例外が発生した場合public java.sql.ResultSet executeQueryWaitForRows(Monitor.MultipleObjects waiters, java.lang.String sql, java.util.Collection<?> parameters) throws java.sql.SQLException, java.util.concurrent.TimeoutException, java.lang.InterruptedException, java.io.IOException
SQL文を実行して返された結果行数が 0 である場合、指定された Monitor.MultipleObjects waitersを使ってこのスレッドを待機させます。
ほかのスレッドがwaitersに含まれるオブジェクトのいずれかを指定して、データソースが保持する Monitor のnotifyAll(Object)メソッドを呼び出すと、
スレッドが再開され、再び、SQL文が実行されます。
このメソッドに指定するSQL文はパラメータのプレースホルダーを使うことができます。 パラメーターのプレースホルダーは ? で指定します。 パラメーターのプレースホルダーには第3引数で指定したparametersが順番に割り当てられます。 パラメーターが必要ない場合は第3引数を省略してこのメソッドを呼び出します。
返されるResultSetオブジェクトはメモリーにキャッシュされた非接続の行セットです。
waiters - 待機中のスレッドを再開させるためのオブジェクトを含むMultipleObjectssql - プレースホルダー ? を含むSQL文parameters - プレースホルダーに設定されるパラメーターjava.sql.SQLException - データベースアクセスエラーが発生した場合java.util.concurrent.TimeoutException - 指定された待機時間が経過した場合java.lang.InterruptedException - 現在のスレッドが通知を待機する前または待機中に、いずれかのスレッドが現在のスレッドに割り込んだ場合。この例外がスローされると、現在のスレッドの「割り込みステータス」はクリアされます。java.io.IOException - 暗黙的トランザクションで自動クローズ例外が発生した場合public java.sql.ResultSet executeQueryWaitForRows(Monitor.MultipleObjects waiters, NamedParameterStatement statement) throws java.sql.SQLException, java.util.concurrent.TimeoutException, java.lang.InterruptedException, java.io.IOException
SQL文を実行して返された結果行数が 0 である場合、指定された Monitor.MultipleObjects waitersを使ってこのスレッドを待機させます。
ほかのスレッドがwaitersに含まれるオブジェクトのいずれかを指定して、データソースが保持する Monitor のnotifyAll(Object)メソッドを呼び出すと、
スレッドが再開され、再び、SQL文が実行されます。
このメソッドには名前付きパラメーター機能を提供するNamedParameterStatementを指定します。
返されるResultSetオブジェクトはメモリーにキャッシュされた非接続の行セットです。
waiters - 待機中のスレッドを再開させるためのオブジェクトを含むMultipleObjectsstatement - 名前付きパラメーターステートメントjava.sql.SQLException - データベースアクセスエラーが発生した場合java.util.concurrent.TimeoutException - 指定された待機時間が経過した場合java.lang.InterruptedException - 現在のスレッドが通知を待機する前または待機中に、いずれかのスレッドが現在のスレッドに割り込んだ場合。この例外がスローされると、現在のスレッドの「割り込みステータス」はクリアされます。java.io.IOException - 暗黙的トランザクションで自動クローズ例外が発生した場合NamedParameterStatementpublic <T> T executeScalar(java.lang.String sql)
throws java.sql.SQLException,
java.io.IOException
T - 返される列の値をキャストする型。列の値はResultSetのgetObject(int)によって取得されて<T>にキャストされます。sql - データベースに送られるSQL文。通常は静的なSELECT文です。java.sql.SQLException - データベースアクセスエラーが発生した場合java.io.IOException - 暗黙的トランザクションで自動クローズ例外が発生した場合public <T> T executeScalar(java.lang.String sql,
java.lang.Object... parameters)
throws java.sql.SQLException,
java.io.IOException
このメソッドに指定するSQL文はパラメータのプレースホルダーを使うことができます。 パラメーターのプレースホルダーは ? で指定します。 パラメーターのプレースホルダーには第3引数で指定したparametersが順番に割り当てられます。 パラメーターが必要ない場合は第3引数を省略してこのメソッドを呼び出します。
T - 返される列の値をキャストする型。列の値はResultSetのgetObject(int)によって取得されて<T>にキャストされます。sql - プレースホルダー ? を含むSQL文parameters - プレースホルダーに設定されるパラメーターjava.sql.SQLException - データベースアクセスエラーが発生した場合java.io.IOException - 暗黙的トランザクションで自動クローズ例外が発生した場合public <T> T executeScalar(java.lang.String sql,
java.util.Collection<?> parameters)
throws java.sql.SQLException,
java.io.IOException
このメソッドに指定するSQL文はパラメータのプレースホルダーを使うことができます。 パラメーターのプレースホルダーは ? で指定します。 パラメーターのプレースホルダーには第3引数で指定したparametersが順番に割り当てられます。 パラメーターが必要ない場合は第3引数を省略してこのメソッドを呼び出します。
T - 返される列の値をキャストする型。列の値はResultSetのgetObject(int)によって取得されて<T>にキャストされます。sql - プレースホルダー ? を含むSQL文parameters - プレースホルダーに設定されるパラメーターjava.sql.SQLException - データベースアクセスエラーが発生した場合java.io.IOException - 暗黙的トランザクションで自動クローズ例外が発生した場合public <T> T executeScalar(NamedParameterStatement statement) throws java.sql.SQLException, java.io.IOException
このメソッドには名前付きパラメーター機能を提供するNamedParameterStatementを指定します。
T - 返される列の値をキャストする型。列の値はResultSetのgetObject(int)によって取得されて<T>にキャストされます。statement - 名前付きパラメーターステートメントjava.sql.SQLException - データベースアクセスエラーが発生した場合java.io.IOException - 暗黙的トランザクションで自動クローズ例外が発生した場合NamedParameterStatementpublic <T> T select(java.lang.String columnName,
java.lang.Object obj)
throws java.sql.SQLException,
java.lang.IllegalArgumentException,
java.lang.IllegalAccessException
SELECT文を構築するために指定するオブジェクトはPOJOまたはTableオブジェクトです。
オブジェクトがTableである場合、Tableのコンストラクタで指定された文字列をテーブル名とします。
オブジェクトがTable以外のPOJOである場合はオブジェクトのクラス名をテーブル名とします。
オブジェクトのクラスが匿名クラスである場合は、スーパークラスのクラス名をテーブル名とします。
テーブルの列名と一致するオブジェクトのフィールドはWHERE句に指定されます。
id列とname列を持つPersonテーブルに対してSELECT文を実行するには以下の方法があります。
String name = DataSource.select("name", new Person() {
int id = 1;
});
または
String name = DataSource.select("name", new Table("Person") {
int id = 1;
});
ただし、以下のようにPersonクラスのインスタンスを初期化した場合は上記と同じ結果になりません。
Person person = new Person();
person.id = 1;
String name = DataSource.select("name", person);
上記のケースではPersonクラスが持つ他のフィールドnameがWHERE句に追加されてしまうためです。
T - 返される列の値をキャストする型。列の値はResultSet#getObject(int)によって取得されて<T>にキャストされます。columnName - 列名obj - SELECT文を構築するオブジェクトjava.sql.SQLException - データベースアクセスエラーが発生した場合java.lang.IllegalArgumentException - 指定されたオブジェクトが null の場合java.lang.IllegalAccessException - オブジェクトのフィールドにアクセスできない場合public <T> T select(java.lang.Object obj)
throws java.sql.SQLException,
java.text.ParseException,
java.lang.ReflectiveOperationException
SELECT文を構築するために指定するオブジェクトはPOJOオブジェクトです。 オブジェクトのクラス名をテーブル名とします。 オブジェクトのクラスが匿名クラスである場合は、スーパークラスのクラス名をテーブル名とします。 テーブルの列名と一致するオブジェクトのフィールドはWHERE句に指定されます。
id列とname列を持つPersonテーブルに対してSELECT文を実行するには以下のようにします。
Person person = DataSource.select(new Person() {
int id = 1;
});
T - 返されるオブジェクトの型。obj - SELECT文を構築するオブジェクトjava.sql.SQLException - データベースアクセスエラーが発生した場合java.text.ParseException - 列の値をフィールドの型に変換できない場合java.lang.ReflectiveOperationException - リフレクション操作例外。<T>には引数を持たないコンストラクタが必要です。public <T> T select(java.lang.Class<T> returnClass)
throws java.sql.SQLException,
java.text.ParseException,
java.lang.ReflectiveOperationException
このメソッドはレコードが1行しかないテーブルのデータを取得するのに適しています。
T - 返されるオブジェクトの型。returnClass - クエリーが返す結果セットをマッピングするクラスjava.sql.SQLException - データベースアクセスエラーが発生した場合java.text.ParseException - 列の値をフィールドの型に変換できない場合java.lang.ReflectiveOperationException - リフレクション操作例外。<T>には引数を持たないコンストラクタが必要です。public <T> T select(java.lang.Class<T> returnClass,
java.lang.Object obj)
throws java.sql.SQLException,
java.text.ParseException,
java.lang.ReflectiveOperationException
SELECT文を構築するために指定するオブジェクトはPOJOまたはTableオブジェクトです。
オブジェクトがTableである場合、Tableのコンストラクタで指定された文字列をテーブル名とします。
オブジェクトがTable以外のPOJOである場合はオブジェクトのクラス名をテーブル名とします。
オブジェクトのクラスが匿名クラスである場合は、スーパークラスのクラス名をテーブル名とします。
テーブルの列名と一致するオブジェクトのフィールドはWHERE句に指定されます。
T - 返されるオブジェクトの型。returnClass - クエリーが返す結果セットをマッピングするクラスobj - SELECT文を構築するオブジェクトjava.sql.SQLException - データベースアクセスエラーが発生した場合java.text.ParseException - 列の値をフィールドの型に変換できない場合java.lang.ReflectiveOperationException - リフレクション操作例外。<T>には引数を持たないコンストラクタが必要です。public <T> T select(java.lang.Class<T> returnClass,
java.lang.String sql)
throws java.sql.SQLException,
java.text.ParseException,
java.lang.ReflectiveOperationException
返されるオブジェクトの型としてInteger.class、String.class、LocalDateTime.classなどのスカラー値の型を指定することもできます。 スカラー値の型を指定する場合、単一の列のみを保持している結果セットが必要です。結果セットの列数が2以上の場合、IllegalArgumentExceptionがスローされます。
T - 返されるオブジェクトの型。returnClass - クエリーが返す結果セットをマッピングするクラスsql - データベースに送られるSQL文。通常は静的なSELECT文です。java.sql.SQLException - データベースアクセスエラーが発生した場合java.text.ParseException - 列の値をフィールドの型に変換できない場合java.lang.ReflectiveOperationException - リフレクション操作例外。<T>には引数を持たないコンストラクタが必要です。public <T> T select(java.lang.Class<T> returnClass,
java.lang.String sql,
java.lang.Object... parameters)
throws java.sql.SQLException,
java.text.ParseException,
java.lang.ReflectiveOperationException
返されるオブジェクトの型としてInteger.class、String.class、LocalDateTime.classなどのスカラー値の型を指定することもできます。 スカラー値の型を指定する場合、単一の列のみを保持している結果セットが必要です。結果セットの列数が2以上の場合、IllegalArgumentExceptionがスローされます。
T - 返されるオブジェクトの型。returnClass - クエリーが返す結果セットをマッピングするクラスsql - プレースホルダー ? を含むSQL文parameters - プレースホルダーに設定されるパラメーターjava.sql.SQLException - データベースアクセスエラーが発生した場合java.text.ParseException - 列の値をフィールドの型に変換できない場合java.lang.ReflectiveOperationException - リフレクション操作例外。<T>には引数を持たないコンストラクタが必要です。public <T> T select(java.lang.Class<T> returnClass,
java.lang.String sql,
java.util.Collection<?> parameters)
throws java.sql.SQLException,
java.text.ParseException,
java.lang.ReflectiveOperationException
返されるオブジェクトの型としてInteger.class、String.class、LocalDateTime.classなどのスカラー値の型を指定することもできます。 スカラー値の型を指定する場合、単一の列のみを保持している結果セットが必要です。結果セットの列数が2以上の場合、IllegalArgumentExceptionがスローされます。
T - 返されるオブジェクトの型。returnClass - クエリーが返す結果セットをマッピングするクラスsql - プレースホルダー ? を含むSQL文parameters - プレースホルダーに設定されるパラメーターjava.sql.SQLException - データベースアクセスエラーが発生した場合java.text.ParseException - 列の値をフィールドの型に変換できない場合java.lang.ReflectiveOperationException - リフレクション操作例外。<T>には引数を持たないコンストラクタが必要です。public <T> T select(java.lang.Class<T> returnClass,
NamedParameterStatement statement)
throws java.sql.SQLException,
java.text.ParseException,
java.lang.ReflectiveOperationException
返されるオブジェクトの型としてInteger.class、String.class、LocalDateTime.classなどのスカラー値の型を指定することもできます。 スカラー値の型を指定する場合、単一の列のみを保持している結果セットが必要です。結果セットの列数が2以上の場合、IllegalArgumentExceptionがスローされます。
T - 返されるオブジェクトの型。returnClass - クエリーが返す結果セットをマッピングするクラスstatement - 名前付きパラメーターステートメントjava.sql.SQLException - データベースアクセスエラーが発生した場合java.text.ParseException - 列の値をフィールドの型に変換できない場合java.lang.ReflectiveOperationException - リフレクション操作例外。<T>には引数を持たないコンストラクタが必要です。public <T> java.util.List<T> selectAsList(java.lang.Class<T> returnClass)
throws java.sql.SQLException,
java.text.ParseException,
java.lang.ReflectiveOperationException
SELECT文を構築するために指定するクラスのクラス名をテーブル名とします。 このメソッドに匿名クラスを渡すことはできません。 このメソッドはテーブルのすべての行を返します。
Personテーブルのすべての行をList<Person>として取得するには以下のようにします。
List<Person> persons = DataSource.selectAsList(Person.class);
T - 返されるリストの要素の型。returnClass - クエリーが返す結果セットをマッピングするクラス。クラス名がテーブル名と一致している必要があります。java.sql.SQLException - データベースアクセスエラーが発生した場合java.text.ParseException - 列の値をフィールドの型に変換できない場合java.lang.ReflectiveOperationException - リフレクション操作例外。<T>には引数を持たないコンストラクタが必要です。public <T> java.util.List<T> selectAsList(java.lang.Object obj)
throws java.sql.SQLException,
java.text.ParseException,
java.lang.ReflectiveOperationException
SELECT文を構築するために指定するオブジェクトはPOJOオブジェクトです。 オブジェクトのクラス名をテーブル名とします。 オブジェクトのクラスが匿名クラスである場合は、スーパークラスのクラス名をテーブル名とします。 テーブルの列名と一致するオブジェクトのフィールドはWHERE句に指定されます。
Personテーブルのdeleted列の値が1の行をList<Person>として取得するには以下のようにします。
List<Person> persons = DataSource.selectAsList(new Person() {
int deleted = 1;
});
T - 返されるリストの要素の型。obj - SELECT文を構築するオブジェクト。このオブジェクトのクラス名がテーブル名と一致している必要があります。java.sql.SQLException - データベースアクセスエラーが発生した場合java.text.ParseException - 列の値をフィールドの型に変換できない場合java.lang.ReflectiveOperationException - リフレクション操作例外。<T>には引数を持たないコンストラクタが必要です。public <T> java.util.List<T> selectAsList(java.lang.Class<T> returnClass,
java.lang.Object obj)
throws java.sql.SQLException,
java.text.ParseException,
java.lang.ReflectiveOperationException
SELECT文を構築するために指定するオブジェクトはPOJOまたはTableオブジェクトです。
オブジェクトがTableである場合、Tableのコンストラクタで指定された文字列をテーブル名とします。
オブジェクトがTable以外のPOJOである場合はオブジェクトのクラス名をテーブル名とします。
オブジェクトのクラスが匿名クラスである場合は、スーパークラスのクラス名をテーブル名とします。
テーブルの列名と一致するオブジェクトのフィールドはWHERE句に指定されます。
Personテーブルのdeleted列の値が1の行をList<Person>として取得するには以下のようにします。
List<Person> persons = DataSource.selectAsList(Person.class, new Table("Person") {
int deleted = 1;
});
T - 返されるリストの要素の型。returnClass - 返されるリストの要素の型obj - SELECT文を構築するオブジェクト。java.sql.SQLException - データベースアクセスエラーが発生した場合java.text.ParseException - 列の値をフィールドの型に変換できない場合java.lang.ReflectiveOperationException - リフレクション操作例外。<T>には引数を持たないコンストラクタが必要です。public <T> java.util.List<T> selectAsList(java.lang.Class<T> returnClass,
java.lang.String sql)
throws java.sql.SQLException,
java.text.ParseException,
java.lang.ReflectiveOperationException
要素の型としてInteger.class、String.class、LocalDateTime.classなどのスカラー値の型を指定することもできます。 スカラー値の型を指定する場合、ResultSetは単一の列のみを保持している必要があります。ResultSetの列数が2以上の場合、IllegalArgumentExceptionがスローされます。
T - 返されるリストの要素の型。returnClass - 返されるリストの要素の型sql - データベースに送られるSQL文。通常は静的なSELECT文です。java.sql.SQLException - データベースアクセスエラーが発生した場合java.text.ParseException - 列の値をフィールドの型に変換できない場合java.lang.ReflectiveOperationException - リフレクション操作例外。<T>には引数を持たないコンストラクタが必要です。public <T> java.util.List<T> selectAsList(java.lang.Class<T> returnClass,
java.lang.String sql,
java.lang.Object... parameters)
throws java.sql.SQLException,
java.text.ParseException,
java.lang.ReflectiveOperationException
要素の型としてInteger.class、String.class、LocalDateTime.classなどのスカラー値の型を指定することもできます。 スカラー値の型を指定する場合、ResultSetは単一の列のみを保持している必要があります。ResultSetの列数が2以上の場合、IllegalArgumentExceptionがスローされます。
T - 返されるリストの要素の型。returnClass - 返されるリストの要素の型sql - プレースホルダー ? を含むSQL文parameters - プレースホルダーに設定されるパラメーターjava.sql.SQLException - データベースアクセスエラーが発生した場合java.text.ParseException - 列の値をフィールドの型に変換できない場合java.lang.ReflectiveOperationException - リフレクション操作例外。<T>には引数を持たないコンストラクタが必要です。public <T> java.util.List<T> selectAsList(java.lang.Class<T> returnClass,
java.lang.String sql,
java.util.Collection<?> parameters)
throws java.sql.SQLException,
java.text.ParseException,
java.lang.ReflectiveOperationException
要素の型としてInteger.class、String.class、LocalDateTime.classなどのスカラー値の型を指定することもできます。 スカラー値の型を指定する場合、ResultSetは単一の列のみを保持している必要があります。ResultSetの列数が2以上の場合、IllegalArgumentExceptionがスローされます。
T - 返されるリストの要素の型。returnClass - 返されるリストの要素の型sql - プレースホルダー ? を含むSQL文parameters - プレースホルダーに設定されるパラメーターjava.sql.SQLException - データベースアクセスエラーが発生した場合java.text.ParseException - 列の値をフィールドの型に変換できない場合java.lang.ReflectiveOperationException - リフレクション操作例外。<T>には引数を持たないコンストラクタが必要です。public <T> java.util.List<T> selectAsList(java.lang.Class<T> returnClass,
NamedParameterStatement statement)
throws java.sql.SQLException,
java.text.ParseException,
java.lang.ReflectiveOperationException
要素の型としてInteger.class、String.class、LocalDateTime.classなどのスカラー値の型を指定することもできます。 スカラー値の型を指定する場合、ResultSetは単一の列のみを保持している必要があります。ResultSetの列数が2以上の場合、IllegalArgumentExceptionがスローされます。
T - 返されるリストの要素の型。returnClass - 返されるリストの要素の型statement - 名前付きパラメーターステートメントjava.sql.SQLException - データベースアクセスエラーが発生した場合java.text.ParseException - 列の値をフィールドの型に変換できない場合java.lang.ReflectiveOperationException - リフレクション操作例外。<T>には引数を持たないコンストラクタが必要です。public int insert(java.lang.Object obj)
throws java.sql.SQLException,
java.lang.IllegalAccessException
INSERT文を構築するために指定するオブジェクトはPOJOまたはTableオブジェクトです。
オブジェクトがTableである場合、Tableのコンストラクタで指定された文字列をテーブル名とします。
オブジェクトがTable以外のPOJOである場合はオブジェクトのクラス名をテーブル名とします。
オブジェクトのクラスが匿名クラスである場合は、スーパークラスのクラス名をテーブル名とします。
テーブルの列名と一致するオブジェクトのフィールドはVALUES句に指定されます。
列 id, name, age を持つPersonテーブルに行を追加するには以下のようにします。
DataSource.insert(new Person() {
int id = 4;
String name = "四郎";
int age = 19;
});
または
DataSource.insert(new Table("Person") {
int id = 4;
String name = "四郎";
int age = 19;
});
または
Person person = new Person();
person.id = 4;
person.name = "四郎";
person.age = 19;
DataSource.insert(person);
3つ目のコード例ではPersonクラスが列名と一致する他のフィールドを持っている場合に、 列名に 0 や null が指定されることに注意してください。
obj - INSERT文を構築するオブジェクトjava.sql.SQLException - データベースアクセスエラーが発生した場合java.lang.IllegalAccessException - オブジェクトのフィールドにアクセスできない場合public int[] insert(java.lang.Object... objects)
throws java.sql.SQLException,
java.lang.IllegalAccessException
それぞれのオブジェクトのクラスが異なっていても構いません。
指定されたオブジェクトの数だけINSERT文が実行されますが、これらのINSERT文は1つのトランザクションとして実行されます。
INSERT文を構築するために指定するオブジェクトはPOJOまたはTableオブジェクトです。
オブジェクトがTableである場合、Tableのコンストラクタで指定された文字列をテーブル名とします。
オブジェクトがTable以外のPOJOである場合はオブジェクトのクラス名をテーブル名とします。
オブジェクトのクラスが匿名クラスである場合は、スーパークラスのクラス名をテーブル名とします。
テーブルの列名と一致するオブジェクトのフィールドはVALUES句に指定されます。
objects - INSERT文を構築するオブジェクト(複数)java.sql.SQLException - データベースアクセスエラーが発生した場合java.lang.IllegalAccessException - オブジェクトのフィールドにアクセスできない場合public int[] insert(java.util.Collection<?> objects)
throws java.sql.SQLException,
java.lang.IllegalAccessException
それぞれのオブジェクトのクラスが異なっていても構いません。
指定されたオブジェクトの数だけINSERT文が実行されますが、これらのINSERT文は1つのトランザクションとして実行されます。
INSERT文を構築するために指定するオブジェクトはPOJOまたはTableオブジェクトです。
オブジェクトがTableである場合、Tableのコンストラクタで指定された文字列をテーブル名とします。
オブジェクトがTable以外のPOJOである場合はオブジェクトのクラス名をテーブル名とします。
オブジェクトのクラスが匿名クラスである場合は、スーパークラスのクラス名をテーブル名とします。
テーブルの列名と一致するオブジェクトのフィールドはVALUES句に指定されます。
objects - INSERT文を構築するオブジェクト(複数)java.sql.SQLException - データベースアクセスエラーが発生した場合java.lang.IllegalAccessException - オブジェクトのフィールドにアクセスできない場合public int update(java.lang.Object obj)
throws OptimisticConcurrencyException,
java.sql.SQLException,
java.lang.IllegalAccessException
UPDATE文を構築するために指定するオブジェクトはPOJOまたはTableオブジェクトです。
オブジェクトがTableである場合、Tableのコンストラクタで指定された文字列をテーブル名とします。
オブジェクトがTable以外のPOJOである場合はオブジェクトのクラス名をテーブル名とします。
オブジェクトのクラスが匿名クラスである場合は、スーパークラスのクラス名をテーブル名とします。
テーブルの列名と一致するオブジェクトのフィールドはSET句に指定されます。
このメソッドは単一行を更新することを目的としています。行を一意に特定するためのフィールドが指定されている必要があります。
WHERE句を構成する(行を一意に特定するための)列はテーブルのスキーマに基づいて自動的に決定されます。
主キー列 id と通常の列 name を持つPersonテーブルを更新するには以下のようにします。
DataSource.update(new Person() {
int id = 4;
String name = "史郎";
});
上記コード例では主キー列 id の値が 4 となっている行の name 列が "史郎" に更新されます。
構築されたUPDATE文が行バージョン列を含む場合、楽観的同時実行制御をおこないます。
オブジェクトの取得以降に行バージョン列の値が更新されていた場合、UPDATE文によって影響を受ける行数は0になります。
これを検出した場合、楽観的同時実行制御違反としてOptimisticConcurrencyExceptionをスローします。
obj - UPDATE文を構築するオブジェクトOptimisticConcurrencyException - 楽観的同時実行制御例外が発生した場合java.sql.SQLException - データベースアクセスエラーが発生した場合java.lang.IllegalAccessException - オブジェクトのフィールドにアクセスできない場合public int[] update(java.lang.Object... objects)
throws OptimisticConcurrencyException,
java.sql.SQLException,
java.lang.IllegalAccessException
それぞれのオブジェクトのクラスが異なっていても構いません。
指定されたオブジェクトの数だけUPDATE文が実行されますが、これらのUPDATE文は1つのトランザクションとして実行されます。
UPDATE文を構築するために指定するオブジェクトはPOJOまたはTableオブジェクトです。
オブジェクトがTableである場合、Tableのコンストラクタで指定された文字列をテーブル名とします。
オブジェクトがTable以外のPOJOである場合はオブジェクトのクラス名をテーブル名とします。
オブジェクトのクラスが匿名クラスである場合は、スーパークラスのクラス名をテーブル名とします。
テーブルの列名と一致するオブジェクトのフィールドはSET句に指定されます。
このメソッドは単一行を更新することを目的としています。行を一意に特定するためのフィールドが指定されている必要があります。
WHERE句を構成する(行を一意に特定するための)列はテーブルのスキーマに基づいて自動的に決定されます。
構築されたUPDATE文が行バージョン列を含む場合、楽観的同時実行制御をおこないます。
オブジェクトの取得以降に行バージョン列の値が更新されていた場合、UPDATE文によって影響を受ける行数は0になります。
これを検出した場合、楽観的同時実行制御違反としてOptimisticConcurrencyExceptionをスローします。
objects - UPDATE文を構築するオブジェクト(複数)OptimisticConcurrencyException - 楽観的同時実行制御例外が発生した場合java.sql.SQLException - データベースアクセスエラーが発生した場合java.lang.IllegalAccessException - オブジェクトのフィールドにアクセスできない場合public int[] update(java.util.Collection<?> objects)
throws OptimisticConcurrencyException,
java.sql.SQLException,
java.lang.IllegalAccessException
それぞれのオブジェクトのクラスが異なっていても構いません。
指定されたオブジェクトの数だけUPDATE文が実行されますが、これらのUPDATE文は1つのトランザクションとして実行されます。
UPDATE文を構築するために指定するオブジェクトはPOJOまたはTableオブジェクトです。
オブジェクトがTableである場合、Tableのコンストラクタで指定された文字列をテーブル名とします。
オブジェクトがTable以外のPOJOである場合はオブジェクトのクラス名をテーブル名とします。
オブジェクトのクラスが匿名クラスである場合は、スーパークラスのクラス名をテーブル名とします。
テーブルの列名と一致するオブジェクトのフィールドはSET句に指定されます。
このメソッドは単一行を更新することを目的としています。行を一意に特定するためのフィールドが指定されている必要があります。
WHERE句を構成する(行を一意に特定するための)列はテーブルのスキーマに基づいて自動的に決定されます。
構築されたUPDATE文が行バージョン列を含む場合、楽観的同時実行制御をおこないます。
オブジェクトの取得以降に行バージョン列の値が更新されていた場合、UPDATE文によって影響を受ける行数は0になります。
これを検出した場合、楽観的同時実行制御違反としてOptimisticConcurrencyExceptionをスローします。
objects - UPDATE文を構築するオブジェクト(複数)OptimisticConcurrencyException - 楽観的同時実行制御例外が発生した場合java.sql.SQLException - データベースアクセスエラーが発生した場合java.lang.IllegalAccessException - オブジェクトのフィールドにアクセスできない場合public int delete(java.lang.Object obj)
throws OptimisticConcurrencyException,
java.sql.SQLException,
java.lang.IllegalAccessException
DELETE文を構築するために指定するオブジェクトはPOJOまたはTableオブジェクトです。
オブジェクトがTableである場合、Tableのコンストラクタで指定された文字列をテーブル名とします。
オブジェクトがTable以外のPOJOである場合はオブジェクトのクラス名をテーブル名とします。
オブジェクトのクラスが匿名クラスである場合は、スーパークラスのクラス名をテーブル名とします。
このメソッドは単一行を削除することを目的としています。行を一意に特定するためのフィールドが指定されている必要があります。
WHERE句を構成する(行を一意に特定するための)列はテーブルのスキーマに基づいて自動的に決定されます。
構築されたDELETE文が行バージョン列を含む場合、楽観的同時実行制御をおこないます。
オブジェクトの取得以降に行バージョン列の値が更新されていた場合、DELETE文によって影響を受ける行数は0になります。
これを検出した場合、楽観的同時実行制御違反としてOptimisticConcurrencyExceptionをスローします。
obj - DELETE文を構築するオブジェクトOptimisticConcurrencyException - 楽観的同時実行制御例外が発生した場合java.sql.SQLException - データベースアクセスエラーが発生した場合java.lang.IllegalAccessException - オブジェクトのフィールドにアクセスできない場合public int[] delete(java.lang.Object... objects)
throws OptimisticConcurrencyException,
java.sql.SQLException,
java.lang.IllegalAccessException
それぞれのオブジェクトのクラスが異なっていても構いません。
指定されたオブジェクトの数だけDELETE文が実行されますが、これらのDELETE文は1つのトランザクションとして実行されます。
DELETE文を構築するために指定するオブジェクトはPOJOまたはTableオブジェクトです。
オブジェクトがTableである場合、Tableのコンストラクタで指定された文字列をテーブル名とします。
オブジェクトがTable以外のPOJOである場合はオブジェクトのクラス名をテーブル名とします。
オブジェクトのクラスが匿名クラスである場合は、スーパークラスのクラス名をテーブル名とします。
このメソッドは単一行を削除することを目的としています。行を一意に特定するためのフィールドが指定されている必要があります。
WHERE句を構成する(行を一意に特定するための)列はテーブルのスキーマに基づいて自動的に決定されます。
構築されたDELETE文が行バージョン列を含む場合、楽観的同時実行制御をおこないます。
オブジェクトの取得以降に行バージョン列の値が更新されていた場合、DELETE文によって影響を受ける行数は0になります。
これを検出した場合、楽観的同時実行制御違反としてOptimisticConcurrencyExceptionをスローします。
objects - DELETE文を構築するオブジェクト(複数)OptimisticConcurrencyException - 楽観的同時実行制御例外が発生した場合java.sql.SQLException - データベースアクセスエラーが発生した場合java.lang.IllegalAccessException - オブジェクトのフィールドにアクセスできない場合public int[] delete(java.util.Collection<?> objects)
throws OptimisticConcurrencyException,
java.sql.SQLException,
java.lang.IllegalAccessException
それぞれのオブジェクトのクラスが異なっていても構いません。
指定されたオブジェクトの数だけDELETE文が実行されますが、これらのDELETE文は1つのトランザクションとして実行されます。
DELETE文を構築するために指定するオブジェクトはPOJOまたはTableオブジェクトです。
オブジェクトがTableである場合、Tableのコンストラクタで指定された文字列をテーブル名とします。
オブジェクトがTable以外のPOJOである場合はオブジェクトのクラス名をテーブル名とします。
オブジェクトのクラスが匿名クラスである場合は、スーパークラスのクラス名をテーブル名とします。
このメソッドは単一行を削除することを目的としています。行を一意に特定するためのフィールドが指定されている必要があります。
WHERE句を構成する(行を一意に特定するための)列はテーブルのスキーマに基づいて自動的に決定されます。
構築されたDELETE文が行バージョン列を含む場合、楽観的同時実行制御をおこないます。
オブジェクトの取得以降に行バージョン列の値が更新されていた場合、DELETE文によって影響を受ける行数は0になります。
これを検出した場合、楽観的同時実行制御違反としてOptimisticConcurrencyExceptionをスローします。
objects - DELETE文を構築するオブジェクト(複数)OptimisticConcurrencyException - 楽観的同時実行制御例外が発生した場合java.sql.SQLException - データベースアクセスエラーが発生した場合java.lang.IllegalAccessException - オブジェクトのフィールドにアクセスできない場合public int merge(java.lang.Object obj)
throws OptimisticConcurrencyException,
java.sql.SQLException,
java.lang.IllegalAccessException
MERGE文を構築するために指定するオブジェクトはPOJOまたはTableオブジェクトです。
オブジェクトがTableである場合、Tableのコンストラクタで指定された文字列をテーブル名とします。
オブジェクトがTable以外のPOJOである場合はオブジェクトのクラス名をテーブル名とします。
オブジェクトのクラスが匿名クラスである場合は、スーパークラスのクラス名をテーブル名とします。
このメソッドは単一行を更新または追加することを目的としています。
行を一意に特定するためのフィールドが指定されている必要があります。
行を一意に特定するための列はテーブルのスキーマに基づいて自動的に決定されます。
主キー列 id と通常の列 name を持つPersonテーブルを追加または更新するには以下のようにします。
DataSource.merge(new Person() {
int id = 5;
String name = "五郎";
});
構築されたMERGE文が行バージョン列を含む場合、楽観的同時実行制御をおこないます。
オブジェクトの取得以降に行バージョン列の値が更新されていた場合、MERGE文によって影響を受ける行数は0になります。
これを検出した場合、楽観的同時実行制御違反としてOptimisticConcurrencyExceptionをスローします。
obj - MERGE文を構築するオブジェクトOptimisticConcurrencyException - 楽観的同時実行制御例外が発生した場合java.sql.SQLException - データベースアクセスエラーが発生した場合java.lang.IllegalAccessException - オブジェクトのフィールドにアクセスできない場合public int[] merge(java.lang.Object... objects)
throws OptimisticConcurrencyException,
java.sql.SQLException,
java.lang.IllegalAccessException
それぞれのオブジェクトのクラスが異なっていても構いません。
指定されたオブジェクトの数だけMERGE文が実行されますが、これらのMERGE文は1つのトランザクションとして実行されます。
MERGE文を構築するために指定するオブジェクトはPOJOまたはTableオブジェクトです。
オブジェクトがTableである場合、Tableのコンストラクタで指定された文字列をテーブル名とします。
オブジェクトがTable以外のPOJOである場合はオブジェクトのクラス名をテーブル名とします。
オブジェクトのクラスが匿名クラスである場合は、スーパークラスのクラス名をテーブル名とします。
このメソッドは単一行を更新または追加することを目的としています。
行を一意に特定するためのフィールドが指定されている必要があります。
行を一意に特定するための列はテーブルのスキーマに基づいて自動的に決定されます。
構築されたMERGE文が行バージョン列を含む場合、楽観的同時実行制御をおこないます。
オブジェクトの取得以降に行バージョン列の値が更新されていた場合、MERGE文によって影響を受ける行数は0になります。
これを検出した場合、楽観的同時実行制御違反としてOptimisticConcurrencyExceptionをスローします。
objects - MERGE文を構築するオブジェクト(複数)OptimisticConcurrencyException - 楽観的同時実行制御例外が発生した場合java.sql.SQLException - データベースアクセスエラーが発生した場合java.lang.IllegalAccessException - オブジェクトのフィールドにアクセスできない場合public int[] merge(java.util.Collection<?> objects)
throws OptimisticConcurrencyException,
java.sql.SQLException,
java.lang.IllegalAccessException
それぞれのオブジェクトのクラスが異なっていても構いません。
指定されたオブジェクトの数だけMERGE文が実行されますが、これらのMERGE文は1つのトランザクションとして実行されます。
MERGE文を構築するために指定するオブジェクトはPOJOまたはTableオブジェクトです。
オブジェクトがTableである場合、Tableのコンストラクタで指定された文字列をテーブル名とします。
オブジェクトがTable以外のPOJOである場合はオブジェクトのクラス名をテーブル名とします。
オブジェクトのクラスが匿名クラスである場合は、スーパークラスのクラス名をテーブル名とします。
このメソッドは単一行を更新または追加することを目的としています。
行を一意に特定するためのフィールドが指定されている必要があります。
行を一意に特定するための列はテーブルのスキーマに基づいて自動的に決定されます。
構築されたMERGE文が行バージョン列を含む場合、楽観的同時実行制御をおこないます。
オブジェクトの取得以降に行バージョン列の値が更新されていた場合、MERGE文によって影響を受ける行数は0になります。
これを検出した場合、楽観的同時実行制御違反としてOptimisticConcurrencyExceptionをスローします。
objects - MERGE文を構築するオブジェクト(複数)OptimisticConcurrencyException - 楽観的同時実行制御例外が発生した場合java.sql.SQLException - データベースアクセスエラーが発生した場合java.lang.IllegalAccessException - オブジェクトのフィールドにアクセスできない場合