Class SqlRow

All Implemented Interfaces:
Map<String,Object>

@Published public class SqlRow extends MultipleKeyCaseMap<Object>
簡易取得結果1行分のデータを保持するクラス。

各カラムの内容は、そのデータ型に対応したgetメソッドにより取得できる。 この際、カラム名の大文字/小文字の違い、アンダースコアの有無は区別せず、 同一のカラム名とみなされる。

例:

  • USER_NAMEとuser_nameは同一のカラム名とみなされる。(大文字小文字の区別はしないため)
  • USER_NAMEとuserNameは同一のカラム名とみなされる。(アンダースコアの有無は区別しないため)
Author:
Hisaaki Sioiri
  • Constructor Details

    • SqlRow

      public SqlRow(Map<String,Object> row, Map<String,Integer> colType)
      指定されたMapを元にオブジェクトを構築する。
      Parameters:
      row - 1行分のデータを持つMap
      colType - カラムタイプ
    • SqlRow

      public SqlRow(Map<String,Object> row, Map<String,Integer> colType, Map<String,String> ignored)
      指定されたMapを元にオブジェクトを構築する。
      Parameters:
      row - 1行分のデータを持つMap
      colType - カラムタイプ
      ignored - カラム名の紐付け情報(本引数は使用しない)
    • SqlRow

      protected SqlRow(SqlRow orig)
      コピー元となるSqlRowからオブジェクトを構築する。
      Parameters:
      orig - コピー元となるインスタンス
  • Method Details

    • getString

      public final String getString(String colName)
      指定されたカラムの情報を文字列で取得する。
      Parameters:
      colName - カラム名
      Returns:
      指定されたカラム名に対応するString型データ(toString()した結果を返却する)。 データベースの検索結果がnullの場合には、nullを返却する
      Throws:
      IllegalArgumentException - 指定されたカラム名が存在しない場合
    • getInteger

      public final Integer getInteger(String colName)
      指定されたカラムの情報をIntegerとして取得する。

      データベースから取得したデータがInteger型である場合、その値をそのまま返却する。
      それ以外の型の場合、そのデータの文字列表現(toString()した結果)を、 Integer.valueOf(String)を使用してInteger型に変換し返却する。

      データベースから取得したデータがどのような文字列表現を返却するかは、 使用するRDBMSのJDBCドライバに依存する。

      以下に例を示す。

       | 文字列表現 | 結果                  |
       |------------+-----------------------|
       | "1"        |                     1 |
       | "-1"       |                    -1 |
       |"2147483648"| NumberFormatException |
       | "1.0"      | NumberFormatException |
       | "ABC"      | NumberFormatException |
       
      Parameters:
      colName - カラム名
      Returns:
      指定されたカラム名に対応するInteger型データ。 データベースの検索結果がnullの場合には、nullを返却する
      Throws:
      NumberFormatException - データベースから取得したデータの文字列表現が、Integer型として解釈できない場合
      IllegalArgumentException - 指定されたカラム名が存在しない場合
    • getLong

      public final Long getLong(String colName)
      指定されたカラムの情報をLongとして取得する。

      データベースから取得したデータがLong型である場合、その値をそのまま返却する。
      それ以外の型の場合、そのデータの文字列表現(toString()した結果)を、 Long.valueOf(String)を使用してLong型に変換し返却する。

      データベースから取得したデータがどのような文字列表現を返却するかは、 使用するRDBMSのJDBCドライバに依存する。

      以下に例を示す。
       | 文字列表現 | 結果                  |
       |------------+-----------------------|
       | "1"        |                     1 |
       | "-1"       |                    -1 |
       |"2147483648"|            2147483648 |
       | "1.0"      | NumberFormatException |
       | "ABC"      | NumberFormatException |
       
      Parameters:
      colName - カラム名
      Returns:
      指定されたカラム名に対応するLong型データ。 データベースの検索結果がnullの場合には、nullを返却する
      Throws:
      NumberFormatException - データベースから取得したデータの文字列表現が、Long型として解釈できない場合
      IllegalArgumentException - 指定されたカラム名が存在しない場合
    • getBoolean

      public Boolean getBoolean(String colName)
      指定されたカラムの情報をBooleanとして取得する。

      以下の値の場合、Boolean.TRUEを返却し、それ以外は全てBoolean.FALSEを返却する。

      • booleanのtrueの場合
      • Stringの場合で"1" or "on" or "true"の場合(大文字、小文字の区別はしない)
      • 数値型で0以外の場合

      データベースから取得したデータのデータタイプが下記に該当しない場合は、IllegalStateExceptionを送出する。

      Parameters:
      colName - カラム名
      Returns:
      true or falseを返却する。 データベースの検索結果がnullの場合には、nullを返却する
      Throws:
      IllegalArgumentException - 指定されたカラム名が存在しない場合
    • getBigDecimal

      public final BigDecimal getBigDecimal(String colName)
      指定されたカラムの情報をBigDecimalとして取得する。
      Parameters:
      colName - カラム名
      Returns:
      指定されたカラム名に対応するBigDecimal型データ。 データベースの検索結果がnullの場合には、nullを返却する
      Throws:
      NumberFormatException - データベースから取得したデータの文字列表現(toString()した結果)が、BigDecimal型として解釈できない場合
      IllegalArgumentException - 指定されたカラム名が存在しない場合
    • getDate

      public Date getDate(String colName)
      指定されたカラムの情報をDateとして取得する。

      データベースから取得したデータのデータタイプが下記のデータの場合、java.util.Dateとして取得する 下記に該当しない場合は、IllegalStateExceptionを送出する。

      Parameters:
      colName - カラム名
      Returns:
      指定されたカラム名に対応するjava.util.Date型データ。 データベースの検索結果がnullの場合には、nullを返却する
      Throws:
      IllegalArgumentException - 指定されたカラム名が存在しない場合
    • getTimestamp

      public Timestamp getTimestamp(String colName)
      指定されたカラムの情報をTimestampとして取得する。

      データベースから取得したデータのデータタイプが下記のデータの場合、Timestampとして取得する。 下記に該当しない場合は、IllegalStateExceptionを送出する。

      Parameters:
      colName - カラム名
      Returns:
      指定されたカラム名に対応するjava.sql.Timestamp型データ
      Throws:
      IllegalArgumentException - 指定されたカラム名が存在しない場合
    • getBytes

      public byte[] getBytes(String colName)
      指定されたカラムの情報をbyte配列として取得する。

      データベースから取得したデータのデータタイプが下記のデータの場合、byte配列として取得する。
      下記に該当しない場合は、IllegalStateExceptionを送出する。

      Parameters:
      colName - カラム名
      Returns:
      指定されたカラム名に対応するbyte配列データ。 データベースの検索結果がnullの場合には、nullを返却する
      Throws:
      IllegalArgumentException - 指定されたカラム名が存在しない場合
      DbAccessException - データタイプがBLOB型である場合で、データの読み込みに失敗した場合
    • getColType

      protected int getColType(String colName)
      指定されたカラム名のカラムタイプ(Types)を取得する。
      Parameters:
      colName - カラム名
      Returns:
      カラムタイプ