パッケージ org.opengion.fukurou.db

# クラス ResultSetValue

java.lang.Object
org.opengion.fukurou.db.ResultSetValue

すべての実装されたインタフェース:
  `AutoCloseable`

public class ResultSetValue extends Object implements AutoCloseable
ResultSet のデータ処理をまとめたクラスです。 ここでは、ResultSetMetaData から、カラム数、カラム名(NAME列)、 Type属性を取得し、ResultSet で、値を求める時に、Object型の 処理を行います。 Object型としては、CLOB、ROWID、TIMESTAMP 型のみ取り扱っています。 STRUCTタイプもサポートしますが、1レベルのみとします。(6.3.3.0 (2015/07/25))

変更履歴:
  6.0.4.0 (2014/11/28) 新規作成, 6.3.3.0 (2015/07/25) STRUCTタイプの対応
機能分類
  ＤＢ制御
導入されたバージョン:
  JDK6.0,

- ## コンストラクタの概要

  コンストラクタ
  コンストラクタ
  説明
  `ResultSetValue(ResultSet res)`
  ResultSet を引数にとるコンストラクタ ここで、カラムサイズ、カラム名、java.sql.Types の定数定義 を取得します。

- ## メソッドの概要

  修飾子とタイプ
  メソッド
  説明
  `void`
  `close()`
  try-with-resourcesブロックで、自動的に呼ばれる AutoCloseable の実装。
  `String`
  `getClassName(int clmNo)`
  カラムのタイプを表現する文字列値を返します。
  `int`
  `getColumnCount()`
  ResultSetMetaData で求めた、カラム数を返します。
  `int`
  `getColumnDisplaySize(int clmNo)`
  指定のカラム番号のサイズを返します。
  `String`
  `getColumnName(int clmNo)`
  指定のカラム番号のカラム名を返します。
  `int[]`
  `getColumnNos(String[] clmNms)`
  カラム名配列に対応する カラム番号配列を返します。
  `int[]`
  `getColumnNos(String[] clmNms, boolean useThrow)`
  カラム名配列に対応する カラム番号配列を返します。
  `String[]`
  `getNames()`
  カラム名配列を返します。
  `Number`
  `getNumber(int clmNo)`
  タイプに応じて変換された、Numberオブジェクトを返します。
  `String`
  `getValue(int clmNo)`
  現在のカーソル位置にあるレコードのカラム番号のデータを取得します。
  `String[]`
  `getValues()`
  現在のカーソル位置にあるレコードの全カラムデータを取得します。
  `boolean`
  `isWritable(int clmNo)`
  指定の書き込み可能かどうかを返します。
  `boolean`
  `next()`
  カーソルを現在の位置から順方向に1行移動します。

  ### クラスから継承されたメソッド java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## コンストラクタの詳細

  - ### ResultSetValue

    public ResultSetValue(ResultSet res) throws SQLException
    ResultSet を引数にとるコンストラクタ ここで、カラムサイズ、カラム名、java.sql.Types の定数定義 を取得します。 STRUCTタイプもサポートしますが、1レベルのみとします。 つまり、Object型のカラムに、Object型を定義した場合、ここでは取り出すことができません。 また、Object型は、継承関係を構築できるため、個々のオブジェクトの要素数は異なります。 一番最初のレコードのオブジェクト数を元に、算出しますので、ご注意ください。
    パラメータ:
      `res` - 内部で管理するResultSetオブジェクト
    例外:
      `SQLException` - データベース・アクセス・エラーが発生した場合
    変更履歴:
      6.0.4.0 (2014/11/28) 新規作成, 6.3.3.0 (2015/07/25) STRUCTタイプの対応, 6.3.8.0 (2015/09/11) Oracle Database 12cリリース1 (12.1)以降、StructDescriptor は非推奨

- ## メソッドの詳細

  - ### getColumnCount

    public int getColumnCount()
    ResultSetMetaData で求めた、カラム数を返します。
    戻り値:
      カラム数(データの列数)
    変更履歴:
      6.0.4.0 (2014/11/28) 新規作成, 6.3.3.0 (2015/07/25) STRUCTタイプの対応

  - ### getNames

    public String[] getNames()
    カラム名配列を返します。 配列は、0から始まり、カラム数-1 までの文字型配列に設定されます。 カラム名は、ResultSetMetaData#getColumnLabel(int) を toUpperCase した 大文字が返されます。
    戻り値:
      カラム名配列
    変更履歴:
      6.0.4.0 (2014/11/28) 新規作成, 6.3.3.0 (2015/07/25) STRUCTタイプの対応
    このﾒｿｯﾄﾞは、nullを返しません

  - ### getColumnNos

    public int[] getColumnNos(String[] clmNms)
    カラム名配列に対応する カラム番号配列を返します。 引数のカラム名配列が、null の場合は、長さゼロの配列を返します。 指定のカラム名が存在しなかった場合は、ｱﾄﾞﾚｽに -1 がセットされます。
    パラメータ:
      `clmNms` - 値が参照されるカラム名配列(可変長引数)
    戻り値:
      指定されたセルのカラム番号配列。
    変更履歴:
      6.8.6.0 (2018/01/19) 新規追加
    このﾒｿｯﾄﾞは、nullを返しません

  - ### getColumnNos

    public int[] getColumnNos(String[] clmNms, boolean useThrow)
    カラム名配列に対応する カラム番号配列を返します。 引数のカラム名配列が、null の場合は、長さゼロの配列を返します。 指定のカラム名が存在しなかった場合の動作は、useThrow 引数で決まります。 useThrow が、true の場合は、カラム名が存在しない場合は､ HybsSystemException を throw します。useThrow が、false の場合は、カラム名が存在しない場合は、 ｱﾄﾞﾚｽに -1 がセットされます。
    パラメータ:
      `clmNms` - 値が参照されるカラム名配列(可変長引数)
      `useThrow` - カラム名が存在しない場合に、Exception を throw するかどうか
    戻り値:
      指定されたセルのカラム番号配列。
    変更履歴:
      6.8.6.0 (2018/01/19) 新規追加, 6.9.0.2 (2018/02/13) カラム名が、"*" の場合の対応
    このﾒｿｯﾄﾞは、nullを返しません

  - ### getColumnName

    public String getColumnName(int clmNo)
    指定のカラム番号のカラム名を返します。 カラム名を取得する、カラム番号は、0から始まり、カラム数-1 までの数字で指定します。 データベース上の、1から始まる番号とは、異なります。 カラム名は、ResultSetMetaData#getColumnLabel(int) を toUpperCase した 大文字が返されます。
    パラメータ:
      `clmNo` - カラム番号 (0から始まり、カラム数-1までの数字)
    戻り値:
      指定のカラム番号のカラム名
    変更履歴:
      6.0.4.0 (2014/11/28) 新規作成, 6.3.3.0 (2015/07/25) STRUCTタイプの対応

  - ### getColumnDisplaySize

    public int getColumnDisplaySize(int clmNo)
    指定のカラム番号のサイズを返します。 カラムのサイズは、ResultSetMetaData#getColumnDisplaySize(int) の値です。
    パラメータ:
      `clmNo` - カラム番号 (0から始まり、カラム数-1までの数字)
    戻り値:
      指定のカラム番号のサイズ
    変更履歴:
      6.0.4.0 (2014/11/28) 新規作成, 6.3.3.0 (2015/07/25) STRUCTタイプの対応

  - ### isWritable

    public boolean isWritable(int clmNo)
    指定の書き込み可能かどうかを返します。 カラムの書き込み可能かどうかは、ResultSetMetaData#isWritable(int) の値です。
    パラメータ:
      `clmNo` - カラム番号 (0から始まり、カラム数-1までの数字)
    戻り値:
      書き込み可能かどうか
    変更履歴:
      6.0.4.0 (2014/11/28) 新規作成, 6.3.3.0 (2015/07/25) STRUCTタイプの対応

  - ### next

    public boolean next() throws SQLException
    カーソルを現在の位置から順方向に1行移動します。 ResultSet#next() を呼び出しています。 結果は,すべて文字列に変換されて格納されます。
    戻り値:
      新しい現在の行が有効である場合はtrue、行がそれ以上存在しない場合はfalse
    例外:
      `SQLException` - データベース・アクセス・エラーが発生した場合、またはこのメソッドがクローズされた結果セットで呼び出された場合
    関連項目:
      - `ResultSet.next()`
    変更履歴:
      6.0.4.0 (2014/11/28) 新規作成, 6.3.3.0 (2015/07/25) STRUCTタイプの対応

  - ### getValue

    public String getValue(int clmNo) throws SQLException
    現在のカーソル位置にあるレコードのカラム番号のデータを取得します。 ResultSet#getObject( clmNo+1 ) を呼び出しています。 引数のカラム番号は、0から始まりますが、ResultSet のカラム順は、1から始まります。 指定は、0から始まるカラム番号です。 結果は,すべて文字列に変換されて返されます。 また、null オブジェクトの場合も、ゼロ文字列に変換されて返されます。
    パラメータ:
      `clmNo` - カラム番号 (0から始まり、カラム数-1までの数字)
    戻り値:
      現在行のカラム番号のデータ(文字列)
    例外:
      `SQLException` - データベース・アクセス・エラーが発生した場合
    変更履歴:
      6.0.4.0 (2014/11/28) 新規作成: org.opengion.hayabusa.db.DBUtil#getValue( ResultSet , int , int ) から移動, 6.3.3.0 (2015/07/25) STRUCTタイプの対応

  - ### getValues

    public String[] getValues() throws SQLException
    現在のカーソル位置にあるレコードの全カラムデータを取得します。 #getValue( clmNo ) を、0から、カラム数-1 まで呼び出して求めた文字列配列を返します。
    戻り値:
      現在行の全カラムデータの文字列配列
    例外:
      `SQLException` - データベース・アクセス・エラーが発生した場合
    変更履歴:
      6.0.4.0 (2014/11/28) 新規作成, 6.3.3.0 (2015/07/25) STRUCTタイプの対応

  - ### getNumber

    public Number getNumber(int clmNo) throws SQLException
    タイプに応じて変換された、Numberオブジェクトを返します。 条件に当てはまらない場合は、null を返します。 org.opengion.hayabusa.io.HybsJDBCCategoryDataset2 から移動してきました。 これは、検索結果をグラフ化する為の 値を取得する為のメソッドですので、 数値に変換できない場合は、エラーになります。
    パラメータ:
      `clmNo` - カラム番号 (0から始まり、カラム数-1までの数字)
    戻り値:
      Numberオブジェクト(条件に当てはまらない場合は、null)
    例外:
      `SQLException` - データベース・アクセス・エラーが発生した場合
      `RuntimeException` - 数字変換できなかった場合。
    関連項目:
      - `Types`
    変更履歴:
      6.0.4.0 (2014/11/28) 新規作成: org.opengion.hayabusa.db.DBUtil#getNumber( int , Object ) から移動, 6.3.3.0 (2015/07/25) STRUCTタイプの対応

  - ### getClassName

    public String getClassName(int clmNo)
    カラムのタイプを表現する文字列値を返します。 この文字列を用いて、CCSファイルでタイプごとの表示方法を 指定することができます。 現時点では、VARCHAR2,LONG,NUMBER,DATE,CLOB,NONE のどれかにあてはめます。
    パラメータ:
      `clmNo` - カラム番号 (0から始まり、カラム数-1までの数字)
    戻り値:
      カラムのタイプを表現する文字列値
    関連項目:
      - `Types`
    変更履歴:
      6.0.4.0 (2014/11/28) 新規作成: org.opengion.hayabusa.db.DBUtil#type2ClassName( int ) から移動, 6.3.3.0 (2015/07/25) STRUCTタイプの対応

  - ### close

    public void close()
    try-with-resourcesブロックで、自動的に呼ばれる AutoCloseable の実装。 コンストラクタで渡された ResultSet を close() します。
    定義:
      `close` インタフェース内 `AutoCloseable`
    関連項目:
      - `AutoCloseable.close()`
    変更履歴:
      6.4.2.1 (2016/02/05) 新規作成。try-with-resourcesブロックで、自動的に呼ばれる AutoCloseable の実装。