クラス DBUtil
java.lang.Object
org.opengion.fukurou.fileexec.DBUtil
データベース処理を行う、簡易的なユーティリティークラスです。
staticメソッドしか持っていません。
sql文を execute( query ) する事により、データベースに書き込みます。
このクラスは、マルチスレッドに対して、安全です。
- 導入されたバージョン:
- JDK5.0,
-
フィールドの概要
フィールド修飾子とタイプフィールド説明static final int
データベースリトライ回数 10static final int
データベースリトライの待ち時間(ミリ秒) 2000static final int
データベースValid タイムアウト時間(秒) 10static final String
データベースのキーワード "DATABASE"static final int
データ検索時のフェッチサイズ 251static final String
ドライバー "REALM_DRIVER"static final String
ユーザーID "REALM_NAME"static final String
パスワード "REALM_PASSWORD"static final String
接続先URL "REALM_URL" -
メソッドの概要
修飾子とタイプメソッド説明検索するデータベースを指定して、Queryを実行します(Transaction 対応)。dbQuery
(Transaction tarn, String query, String... args) 検索するデータベースを指定して、Queryを実行します(Transaction 対応)。static int
データ配列を渡して実際のDB処理を実行します。static int
データ配列のListを渡して実際のDB処理を実行します。static int
execute
(String insQuery, String updQuery, List<String[]> insList, List<String[]> updList, boolean useErrro) データ配列のListを渡して実際のDB処理を実行します。static int
データ配列のListを渡して実際のDB処理を実行します。static int
データ配列のListを渡して実際のDB処理を実行します。static int
execute
(Transaction tarn, String query, String... values) データ配列を渡して実際のDB処理を実行します。static Connection
DataSource から、Connectionを取得して、返します。static String
getDeleteSQL
(String table, String where) データをデリートする場合に使用するSQL文を作成します。static String
getInsertSQL
(String table, String[] keys, String[] conKeys, String[] conVals) データをインサートする場合に使用するSQL文を作成します。static String
データをアップデートする場合に使用するSQL文を作成します。static void
init()
引数を指定せず、オブジェクトを作成します。static void
接続先URL、ドライバー、ユーザーID、パスワードを指定して、オブジェクトを作成します。static void
接続先URL、ドライバー、ユーザーID、パスワードなどを含んだMapを指定して、オブジェクトを作成します。static boolean
isOracle()
接続先がORACLEかどうかを返します。static boolean
isReady()
DataSourceの初期化が完了していれば、true を返します。resultToArray
(ResultSet resultSet) ResultSet より、結果の文字列配列を作成します。
-
フィールド詳細
-
DATABASE_KEY
データベースのキーワード "DATABASE"- 関連項目:
-
URL_KEY
接続先URL "REALM_URL"- 関連項目:
-
DRIVER_KEY
ドライバー "REALM_DRIVER"- 関連項目:
-
NAME_KEY
ユーザーID "REALM_NAME"- 関連項目:
-
PASSWORD_KEY
パスワード "REALM_PASSWORD"- 関連項目:
-
CONN_SLEEP_TIME
データベースリトライの待ち時間(ミリ秒) 2000- 関連項目:
-
CONN_RETRY_COUNT
データベースリトライ回数 10- 関連項目:
-
CONN_VALID_TIMEOUT
データベースValid タイムアウト時間(秒) 10- 関連項目:
-
DB_FETCH_SIZE
データ検索時のフェッチサイズ 251- 関連項目:
-
-
メソッドの詳細
-
init
引数を指定せず、オブジェクトを作成します。 System.getProperty より取得し、さらに、そこから取得できなかった 場合は、環境変数から、取得します。- 関連項目:
- 変更履歴:
- 7.2.3.1 (2020/04/17) System.getenv → HybsConst.getenv 変更(サービス化対応)
-
init
接続先URL、ドライバー、ユーザーID、パスワードなどを含んだMapを指定して、オブジェクトを作成します。 Mapに指定のキーが含まれない場合は、System.getProperty より取得し、さらに、そこから取得できなかった 場合は、環境変数から、取得します。- パラメータ:
prmMap
- 必要情報を含んだMapオブジェクト- 関連項目:
- 変更履歴:
- 7.2.3.1 (2020/04/17) System.getenv → HybsConst.getenv 変更(サービス化対応)
-
init
接続先URL、ドライバー、ユーザーID、パスワードを指定して、オブジェクトを作成します。 params は、必ず、4つ必要です。- パラメータ:
params
- 接続先URL、ドライバー、ユーザーID、パスワード- 関連項目:
-
isReady
DataSourceの初期化が完了していれば、true を返します。 初期化は、#init(String...) メソッドの呼び出して、完了します。 #crear() で、未完了に戻ります。- 戻り値:
- 初期化が完了しているかどうか
- 関連項目:
-
isOracle
接続先がORACLEかどうかを返します。 ORACLE の場合は、true を返します。- 戻り値:
- 接続先がORACLEかどうか[true:ORACLE false:その他]
-
getConnection
DataSource から、Connectionを取得して、返します。- 戻り値:
- DataSourceから、Connectionを取得して、返します。
- 例外:
SQLException
- SQLエラーが発生した場合- 変更履歴:
- 6.8.2.2 (2017/11/02) コネクションの再取得をリトライします。, 7.2.5.0 (2020/06/01) DB処理の実行に失敗のエラーは、3回までは、何も出さない。
-
execute
データ配列を渡して実際のDB処理を実行します。 ここでは、1行だけ処理するための簡易メソッドを提供します。- パラメータ:
query
- 実行するSQL文values
- ?に割り当てる設定値- 戻り値:
- ここでの処理件数
- 例外:
RuntimeException
- Connection DB処理の実行に失敗した場合
-
execute
データ配列を渡して実際のDB処理を実行します。 ここでは、1行だけ処理するための簡易メソッドを提供します。- パラメータ:
tarn
- 外部から指定するTransactionオブジェクトquery
- 実行するSQL文values
- ?に割り当てる設定値- 戻り値:
- ここでの処理件数
- 例外:
RuntimeException
- Connection DB処理の実行に失敗した場合- 変更履歴:
- 7.4.2.0 (2021/05/14) 外部から指定するTransactionオブジェクト 対応
-
execute
データ配列のListを渡して実際のDB処理を実行します。 データ配列は、1行分のデータに対する設定値の配列です。 これは、keys で指定した並び順と一致している必要があります。- パラメータ:
query
- 実行するSQL文list
- ?に割り当てる設定値- 戻り値:
- ここでの処理件数
- 例外:
RuntimeException
- Connection DB処理の実行に失敗した場合- 変更履歴:
- 7.4.1.0 (2021/04/23) 途中で整合性制約違反が発生した場合に継続するかどうかを指定できるようにします。
-
execute
データ配列のListを渡して実際のDB処理を実行します。 データ配列は、1行分のデータに対する設定値の配列です。 これは、keys で指定した並び順と一致している必要があります。 処理の途中で整合性制約違反が発生した場合に継続するかどうかを指定できるフラグを追加しています。 false に設定した場合は、エラーが発生しても処理を継続して、commit します。(7.4.1.0 (2021/04/23) )- パラメータ:
query
- 実行するSQL文list
- ?に割り当てる設定値useErrro
- false に設定すると、途中で整合性制約違反が発生しても処理を継続する。- 戻り値:
- ここでの処理件数
- 例外:
RuntimeException
- Connection DB処理の実行に失敗した場合- 変更履歴:
- 6.8.1.5 (2017/09/08) LOGGER.debug 情報の追加, 7.4.1.0 (2021/04/23) 途中で整合性制約違反が発生した場合に継続するかどうかを指定できるようにします。
-
execute
public static int execute(String insQuery, String updQuery, List<String[]> insList, List<String[]> updList) データ配列のListを渡して実際のDB処理を実行します。(暫定メソッド) これは、updQueryで、更新してみて、0件の場合、insQuery で追加処理を行います。 データ配列は、1行分のデータに対する設定値の配列です。 これは、keys で指定した並び順と一致している必要があります。 処理の途中で整合性制約違反が発生した場合に継続するかどうかを指定できるフラグを追加しています。 false に設定した場合は、エラーが発生しても処理を継続して、commit します。 (7.4.1.0 (2021/04/23) )- パラメータ:
insQuery
- 追加するSQL文updQuery
- 更新するSQL文insList
- ?に割り当てる設定値updList
- ?に割り当てる設定値- 戻り値:
- ここでの処理件数
- 例外:
RuntimeException
- Connection DB処理の実行に失敗した場合- 変更履歴:
- 7.4.1.0 (2021/04/23) 途中で整合性制約違反が発生した場合に継続するかどうかを指定できるようにします。
-
execute
public static int execute(String insQuery, String updQuery, List<String[]> insList, List<String[]> updList, boolean useErrro) データ配列のListを渡して実際のDB処理を実行します。(暫定メソッド) これは、updQueryで、更新してみて、0件の場合、insQuery で追加処理を行います。 データ配列は、1行分のデータに対する設定値の配列です。 これは、keys で指定した並び順と一致している必要があります。- パラメータ:
insQuery
- 追加するSQL文updQuery
- 更新するSQL文insList
- ?に割り当てる設定値updList
- ?に割り当てる設定値useErrro
- false に設定すると、途中で整合性制約違反が発生しても処理を継続する。- 戻り値:
- ここでの処理件数
- 例外:
RuntimeException
- Connection DB処理の実行に失敗した場合- 変更履歴:
- 6.8.1.5 (2017/09/08) LOGGER.debug 情報の追加, 7.4.1.0 (2021/04/23) 途中で整合性制約違反が発生した場合に継続するかどうかを指定できるようにします。
-
dbQuery
検索するデータベースを指定して、Queryを実行します(Transaction 対応)。 ステートメントと引数により、Prepared クエリーの検索のみ実行します。 結果は、すべて文字列に変換されて格納されます。- パラメータ:
query
- ステートメント文字列args
- オブジェクトの引数配列- 戻り値:
- 検索結果のリスト配列(結果が無ければ、サイズゼロのリスト)
- 例外:
RuntimeException
- DB検索処理の実行に失敗した場合- このメソッドは、nullを返しません
-
dbQuery
検索するデータベースを指定して、Queryを実行します(Transaction 対応)。 ステートメントと引数により、Prepared クエリーの検索のみ実行します。 結果は、すべて文字列に変換されて格納されます。- パラメータ:
tarn
- 外部から指定するTransactionオブジェクトquery
- ステートメント文字列args
- オブジェクトの引数配列- 戻り値:
- 検索結果のリスト配列(結果が無ければ、サイズゼロのリスト)
- 例外:
RuntimeException
- DB検索処理の実行に失敗した場合- 変更履歴:
- 7.4.2.0 (2021/05/14) 外部から指定するTransactionオブジェクト 対応
- このメソッドは、nullを返しません
-
resultToArray
ResultSet より、結果の文字列配列を作成します。 結果は、すべて文字列に変換されて格納されます。 移動したメソッドで使われているのでこれも移動- パラメータ:
resultSet
- ResultSetオブジェクト- 戻り値:
- ResultSetの検索結果リスト配列
- 例外:
SQLException
- データベース・アクセス・エラーが発生した場合- このメソッドは、nullを返しません
-
getInsertSQL
データをインサートする場合に使用するSQL文を作成します。 これは、key に対応した ? 文字列で、SQL文を作成します。 実際の値設定は、この、キーの並び順に応じた値を設定することになります。 conKeysとconValsは、固定値のキーと値です。 conKeys,conVals がnullの場合は、これらの値を使用しません。- パラメータ:
table
- テーブルIDkeys
- 設定値に対応するキー配列conKeys
- 固定値の設定値に対応するキー配列conVals
- 固定値に対応する値配列- 戻り値:
- インサートSQL
- このメソッドは、nullを返しません
-
getUpdateSQL
public static String getUpdateSQL(String table, String[] keys, String[] conKeys, String[] conVals, String where) データをアップデートする場合に使用するSQL文を作成します。 これは、key に対応した ? 文字列で、SQL文を作成します。 実際の値設定は、この、キーの並び順に応じた値を設定することになります。 WHERE 文字列は、この、? も含めたWHERE条件の文字列を渡します。 WHERE条件の場合は、この、?に、関数を設定したり、条件を指定したり、 色々なケースがあるため、単純にキーだけ指定する方法では、対応範囲が 限られるためです。 conKeysとconValsは、固定値のキーと値です。 conKeys,conVals,where がnullの場合は、これらの値を使用しません。- パラメータ:
table
- テーブルIDkeys
- 設定値に対応するキー配列conKeys
- 固定値の設定値に対応するキー配列conVals
- 固定値に対応する値配列(VARCHARのみ)where
- WHERE条件式- 戻り値:
- アップデートSQL
- 変更履歴:
- 7.2.5.0 (2020/06/01) UPDATEで、? を含むキーワードを、処理できるようにします。
- このメソッドは、nullを返しません
-
getDeleteSQL
データをデリートする場合に使用するSQL文を作成します。 これは、key に対応した ? 文字列で、SQL文を作成します。 実際の値設定は、この、キーの並び順に応じた値を設定することになります。 WHERE 文字列は、この、? も含めたWHERE条件の文字列を渡します。 WHERE条件の場合は、この、?に、関数を設定したり、条件を指定したり、 色々なケースがあるため、単純にキーだけ指定する方法では、対応範囲が 限られるためです。- パラメータ:
table
- テーブルIDwhere
- 設定値に対応するキー配列(可変長引数)- 戻り値:
- デリートSQL
- このメソッドは、nullを返しません
-