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