クラス DBUtil
- java.lang.Object
-
- org.opengion.fukurou.fileexec.DBUtil
-
public final class DBUtil extends java.lang.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 java.lang.String
DATABASE_KEY
データベースのキーワード "DATABASE"static java.lang.String
DRIVER_KEY
ドライバー "REALM_DRIVER"static java.lang.String
NAME_KEY
ユーザーID "REALM_NAME"static java.lang.String
PASSWORD_KEY
パスワード "REALM_PASSWORD"static java.lang.String
URL_KEY
接続先URL "REALM_URL"
-
メソッドの概要
すべてのメソッド staticメソッド concreteメソッド 修飾子とタイプ メソッド 説明 static java.util.List<java.lang.String[]>
dbQuery(java.lang.String query, java.lang.String... args)
検索するデータベースを指定して、Queryを実行します(Transaction 対応)。static int
execute(java.lang.String query, java.lang.String... values)
データ配列を渡して実際のDB処理を実行します。static int
execute(java.lang.String insQuery, java.lang.String updQuery, java.util.List<java.lang.String[]> insList, java.util.List<java.lang.String[]> updList)
データ配列のListを渡して実際のDB処理を実行します。static int
execute(java.lang.String query, java.util.List<java.lang.String[]> list)
データ配列のListを渡して実際のDB処理を実行します。static java.sql.Connection
getConnection()
DataSource から、Connectionを取得して、返します。static java.lang.String
getDeleteSQL(java.lang.String table, java.lang.String where)
データをデリートする場合に使用するSQL文を作成します。static java.lang.String
getInsertSQL(java.lang.String table, java.lang.String[] keys, java.lang.String[] conKeys, java.lang.String[] conVals)
データをインサートする場合に使用するSQL文を作成します。static java.lang.String
getUpdateSQL(java.lang.String table, java.lang.String[] keys, java.lang.String[] conKeys, java.lang.String[] conVals, java.lang.String where)
データをアップデートする場合に使用するSQL文を作成します。static void
init()
引数を指定せず、オブジェクトを作成します。static void
init(java.lang.String... params)
接続先URL、ドライバー、ユーザーID、パスワードを指定して、オブジェクトを作成します。static void
init(java.util.Map<java.lang.String,java.lang.String> prmMap)
接続先URL、ドライバー、ユーザーID、パスワードなどを含んだMapを指定して、オブジェクトを作成します。static boolean
isOracle()
接続先がORACLEかどうかを返します。static boolean
isReady()
DataSourceの初期化が完了していれば、true を返します。static java.util.List<java.lang.String[]>
resultToArray(java.sql.ResultSet resultSet)
ResultSet より、結果の文字列配列を作成します。
-
-
-
フィールドの詳細
-
DATABASE_KEY
public static final java.lang.String DATABASE_KEY
データベースのキーワード "DATABASE"- 関連項目:
- 定数フィールド値
-
URL_KEY
public static final java.lang.String URL_KEY
接続先URL "REALM_URL"- 関連項目:
- 定数フィールド値
-
DRIVER_KEY
public static final java.lang.String DRIVER_KEY
ドライバー "REALM_DRIVER"- 関連項目:
- 定数フィールド値
-
NAME_KEY
public static final java.lang.String NAME_KEY
ユーザーID "REALM_NAME"- 関連項目:
- 定数フィールド値
-
PASSWORD_KEY
public static final java.lang.String PASSWORD_KEY
パスワード "REALM_PASSWORD"- 関連項目:
- 定数フィールド値
-
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- 関連項目:
- 定数フィールド値
-
-
メソッドの詳細
-
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(java.util.Map<java.lang.String,java.lang.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(java.lang.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 java.sql.Connection getConnection() throws java.sql.SQLException
DataSource から、Connectionを取得して、返します。- 戻り値:
- DataSourceから、Connectionを取得して、返します。
- 例外:
java.sql.SQLException
- SQLエラーが発生した場合- 変更履歴:
- 6.8.2.2 (2017/11/02) コネクションの再取得をリトライします。
-
execute
public static int execute(java.lang.String query, java.lang.String... values)
データ配列を渡して実際のDB処理を実行します。 ここでは、1行だけ処理するための簡易メソッドを提供します。- パラメータ:
query
- 実行するSQL文values
- ?に割り当てる設定値- 戻り値:
- ここでの処理件数
- 例外:
java.lang.RuntimeException
- Connection DB処理の実行に失敗した場合
-
execute
public static int execute(java.lang.String query, java.util.List<java.lang.String[]> list)
データ配列のListを渡して実際のDB処理を実行します。 データ配列は、1行分のデータに対する設定値の配列です。 これは、keys で指定した並び順と一致している必要があります。- パラメータ:
query
- 実行するSQL文list
- ?に割り当てる設定値- 戻り値:
- ここでの処理件数
- 例外:
java.lang.RuntimeException
- Connection DB処理の実行に失敗した場合- 変更履歴:
- 6.8.1.5 (2017/09/08) LOGGER.debug 情報の追加
-
execute
public static int execute(java.lang.String insQuery, java.lang.String updQuery, java.util.List<java.lang.String[]> insList, java.util.List<java.lang.String[]> updList)
データ配列のListを渡して実際のDB処理を実行します。(暫定メソッド) これは、updQueryで、更新してみて、0件の場合、insQuery で追加処理を行います。 データ配列は、1行分のデータに対する設定値の配列です。 これは、keys で指定した並び順と一致している必要があります。- パラメータ:
insQuery
- 追加するSQL文updQuery
- 更新するSQL文insList
- ?に割り当てる設定値updList
- ?に割り当てる設定値- 戻り値:
- ここでの処理件数
- 例外:
java.lang.RuntimeException
- Connection DB処理の実行に失敗した場合- 変更履歴:
- 6.8.1.5 (2017/09/08) LOGGER.debug 情報の追加
-
dbQuery
public static java.util.List<java.lang.String[]> dbQuery(java.lang.String query, java.lang.String... args)
検索するデータベースを指定して、Queryを実行します(Transaction 対応)。 ステートメントと引数により、Prepared クエリーの検索のみ実行します。 結果は,すべて文字列に変換されて格納されます。- パラメータ:
query
- ステートメント文字列args
- オブジェクトの引数配列- 戻り値:
- 検索結果のリスト配列(結果が無ければ、サイズゼロのリスト)
- 例外:
java.lang.RuntimeException
- DB検索処理の実行に失敗した場合- このメソッドは、nullを返しません
-
resultToArray
public static java.util.List<java.lang.String[]> resultToArray(java.sql.ResultSet resultSet) throws java.sql.SQLException
ResultSet より、結果の文字列配列を作成します。 結果は,すべて文字列に変換されて格納されます。 移動したメソッドで使われているのでこれも移動- パラメータ:
resultSet
- ResultSetオブジェクト- 戻り値:
- ResultSetの検索結果リスト配列
- 例外:
java.sql.SQLException
- データベース・アクセス・エラーが発生した場合- このメソッドは、nullを返しません
-
getInsertSQL
public static java.lang.String getInsertSQL(java.lang.String table, java.lang.String[] keys, java.lang.String[] conKeys, java.lang.String[] conVals)
データをインサートする場合に使用するSQL文を作成します。 これは、key に対応した ? 文字列で、SQL文を作成します。 実際の値設定は、この、キーの並び順に応じた値を設定することになります。 conKeysとconValsは、固定値のキーと値です。 conKeys,conVals がnullの場合は、これらの値を使用しません。- パラメータ:
table
- テーブルIDkeys
- 設定値に対応するキー配列conKeys
- 固定値の設定値に対応するキー配列conVals
- 固定値に対応する値配列- 戻り値:
- インサートSQL
- このメソッドは、nullを返しません
-
getUpdateSQL
public static java.lang.String getUpdateSQL(java.lang.String table, java.lang.String[] keys, java.lang.String[] conKeys, java.lang.String[] conVals, java.lang.String where)
データをアップデートする場合に使用するSQL文を作成します。 これは、key に対応した ? 文字列で、SQL文を作成します。 実際の値設定は、この、キーの並び順に応じた値を設定することになります。 WHERE 文字列は、この、? も含めたWHERE条件の文字列を渡します。 WHERE条件の場合は、この、?に、関数を設定したり、条件を指定したり、 色々なケースがあるため、単純にキーだけ指定する方法では、対応範囲が 限られるためです。 conKeysとconValsは、固定値のキーと値です。 conKeys,conVals,where がnullの場合は、これらの値を使用しません。- パラメータ:
table
- テーブルIDkeys
- 設定値に対応するキー配列conKeys
- 固定値の設定値に対応するキー配列conVals
- 固定値に対応する値配列(VARCHARのみ)where
- WHERE条件式- 戻り値:
- アップデートSQL
- このメソッドは、nullを返しません
-
getDeleteSQL
public static java.lang.String getDeleteSQL(java.lang.String table, java.lang.String where)
データをデリートする場合に使用するSQL文を作成します。 これは、key に対応した ? 文字列で、SQL文を作成します。 実際の値設定は、この、キーの並び順に応じた値を設定することになります。 WHERE 文字列は、この、? も含めたWHERE条件の文字列を渡します。 WHERE条件の場合は、この、?に、関数を設定したり、条件を指定したり、 色々なケースがあるため、単純にキーだけ指定する方法では、対応範囲が 限られるためです。- パラメータ:
table
- テーブルIDwhere
- 設定値に対応するキー配列(可変長引数)- 戻り値:
- デリートSQL
- このメソッドは、nullを返しません
-
-