org.maachang.mimdb.core

## クラス MimdbTable

- java.lang.Object
- - org.maachang.mimdb.core.MimdbTable

- すべての実装されたインタフェース:
    BaseTable, MimdbBase

      public class MimdbTable
      extends java.lang.Object
      implements BaseTable

  テーブル情報.
  導入されたバージョン:
    MasterInMemDB 1.00
  バージョン:
    2013/10/13
  作成者:
    masahito suzuki

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

    コンストラクタ
    コンストラクタと説明
    `MimdbTable(long dbId, java.lang.String name, int length, java.lang.String[] columns, int[] columnTypes, java.lang.String primaryIndexKey, java.lang.String[] keyNames, java.lang.String[] ngramKeys, java.lang.String[] hashKeys, boolean compressFlag, int compressLength)` コンストラクタ.
    `MimdbTable(long dbId, java.lang.String name, int length, java.lang.String primaryIndexKey, java.lang.String[] keyNames, java.lang.String[] ngramKeys, java.lang.String[] hashKeys, boolean compressFlag, int compressLength, java.sql.ResultSet rs)` コンストラクタ.
    `MimdbTable(long dbId, java.lang.String name, int length, java.lang.String primaryIndexKey, java.lang.String[] keyNames, java.lang.String[] ngramKeys, java.lang.String[] hashKeys, boolean compressFlag, int compressLength, java.sql.ResultSetMetaData meta)` コンストラクタ.

  - ### メソッドの概要

    メソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `void` | `add(java.lang.Object[] oneLine)` 1件のデータを追加.
    `int` | `addAll(java.util.List<java.lang.Object[]> allLine)` データを複数追加.
    `int` | `addAllByJDBC(java.sql.ResultSet result)` JDBCのResultSet経由でデータ追加.
    `void` | `clear()` 追加データのクリア処理.
    `void` | `fix()` テーブル情報のFIX.
    `MimdbRow` | `get(int no)` 指定行の情報を取得.
    `void` | `getBinary(java.io.OutputStream out)` テーブル定義情報をバイナリ変換.
    `int` | `getBinaryLength()` バイナリデータ長を取得.
    `java.lang.String` | `getColumnName(int no)` カラム名を取得.
    `int` | `getColumnNameByNo(java.lang.String name)` 指定カラム名に対する項番を取得.
    `java.lang.String[]` | `getColumns()` カラム名一覧を取得.
    `int` | `getColumnSize()` カラム数の取得.
    `int` | `getColumnType(int no)` カラムタイプを取得.
    `int` | `getColumnType(java.lang.String name)` カラムタイプを取得.
    `int` | `getCompressByLine()` 行圧縮サイズを取得.
    `int` | `getCompressLength()` 圧縮データ長を取得.
    `long` | `getDbId()` DB更新IDを取得.
    `MimdbIndex` | `getIndex(int no)` 指定項番のインデックス情報を取得.
    `MimdbIndex` | `getIndex(java.lang.String name)` 指定項番のカラムがインデックスかチェック.
    `MimdbRow[]` | `getMainTable()` テーブル内配列情報を取得.
    `java.lang.String` | `getName()` テーブル名を取得.
    `java.lang.String` | `getPrimaryIndexKey()` 主キーカラム名を取得.
    `int` | `getPrimaryIndexKeyNo()` 主キーカラム項番を取得.
    `boolean` | `isComress()` 行圧縮条件が設定されている場合.
    `boolean` | `isFix()` データがFIXされているか取得.
    `boolean` | `isIndex(int no)` 指定項番のカラムがインデックスかチェック.
    `boolean` | `isIndex(java.lang.String name)` 指定項番のカラムがインデックスかチェック.
    `boolean` | `isPrimaryIndexKey()` 主キーが有効かチェック.
    `MimdbResultRow` | `searchPrimaryKey(java.lang.Object value)` 主キー条件を検索.
    `int` | `size()` データ件数の取得.

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

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

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

    - #### MimdbTable

          public MimdbTable(long dbId,
                    java.lang.String name,
                    int length,
                    java.lang.String[] columns,
                    int[] columnTypes,
                    java.lang.String primaryIndexKey,
                    java.lang.String[] keyNames,
                    java.lang.String[] ngramKeys,
                    java.lang.String[] hashKeys,
                    boolean compressFlag,
                    int compressLength)
                     throws java.lang.Exception

      コンストラクタ. 直接データセット用.
      パラメータ:
        `dbId` - DB更新IDを設定します.
        `name` - テーブル名を設定します.
        `length` - 総データ長を設定します.または、バッファ長を設定します.
        `columns` - カラム名一覧を設定します.
        `columnTypes` - カラム型定義を設定します.
        `primaryIndexKey` - 主キーカラム名を設定します.
        `keyNames` - キーカラム名を設定します.
        `ngramKeys` - NGramでキー検索を行うキー名群を設定します.
        `hashKeys` - HashIndexを行うキー名群を設定します.
        `compressFlag` - 行圧縮処理を行う場合は[true]をセット.
        `compressLength` - この情報は１度の圧縮に対する行数を設定します. この値設定は[compressFlag=true]でないと反映されません. この値が少ないと、圧縮率は低下しますが、速度は向上します. 逆にこの値が大きすぎる場合は、圧縮率は上がりますが、速度が 低下します.
      例外:
        `java.lang.Exception` - 例外. データを自前で設定して、テーブル作成を行う場合は、第四引数のカラムタイプ[columnTypes]を 以下の形で定義してください. java.lang.Boolean : MimdbIndex.COLUMN_BOOL java.lang.Integer : MimdbIndex.COLUMN_INT java.lang.Long : MimdbIndex.COLUMN_LONG java.lang.Double : MimdbIndex.COLUMN_FLOAT java.lang.String : MimdbIndex.COLUMN_STRING java.sql.Date : MimdbIndex.COLUMN_DATE java.sql.Time : MimdbIndex.COLUMN_TIME java.sql.Timestamp : MimdbIndex.COLUMN_TIMESTAMP java.util.Date : MimdbIndex.COLUMN_TIMESTAMP

    - #### MimdbTable

          public MimdbTable(long dbId,
                    java.lang.String name,
                    int length,
                    java.lang.String primaryIndexKey,
                    java.lang.String[] keyNames,
                    java.lang.String[] ngramKeys,
                    java.lang.String[] hashKeys,
                    boolean compressFlag,
                    int compressLength,
                    java.sql.ResultSet rs)
                     throws java.lang.Exception

      コンストラクタ. JDBC経由でのデータセット用. この処理で、ResultSet内の全データが追加されます.
      パラメータ:
        `dbId` - DB更新IDを設定します.
        `name` - テーブル名を設定します.
        `length` - 総データ長を設定します.または、バッファ長を設定します.
        `primaryIndexKey` - 主キーカラム名を設定します.
        `keyNames` - キー名を設定します.
        `ngramKeys` - NGramでキー検索を行うキー名群を設定します.
        `hashKeys` - HashIndexを行うキー名群を設定します.
        `compressFlag` - 行圧縮処理を行う場合は[true]をセット.
        `compressLength` - この情報は１度の圧縮に対する行数を設定します. この値設定は[compressFlag=true]でないと反映されません. この値が少ないと、圧縮率は低下しますが、速度は向上します. 逆にこの値が大きすぎる場合は、圧縮率は上がりますが、速度が 低下します.
        `rs` - JDBC経由で取得したResultSetを設定します.
      例外:
        `java.lang.Exception` - 例外.

    - #### MimdbTable

          public MimdbTable(long dbId,
                    java.lang.String name,
                    int length,
                    java.lang.String primaryIndexKey,
                    java.lang.String[] keyNames,
                    java.lang.String[] ngramKeys,
                    java.lang.String[] hashKeys,
                    boolean compressFlag,
                    int compressLength,
                    java.sql.ResultSetMetaData meta)
                     throws java.lang.Exception

      コンストラクタ. JDBC経由でのデータセット用.
      パラメータ:
        `dbId` - DB更新IDを設定します.
        `name` - テーブル名を設定します.
        `length` - 総データ長を設定します.または、バッファ長を設定します.
        `primaryIndexKey` - 主キーカラム名を設定します.
        `keyNames` - キー名を設定します.
        `ngramKeys` - NGramでキー検索を行うキー名群を設定します.
        `hashKeys` - HashIndexを行うキー名群を設定します.
        `hashKeys` - HashIndexを行うキー名群を設定します.
        `compressFlag` - 行圧縮処理を行う場合は[true]をセット.
        `compressLength` - この情報は１度の圧縮に対する行数を設定します. この値設定は[compressFlag=true]でないと反映されません. この値が少ないと、圧縮率は低下しますが、速度は向上します. 逆にこの値が大きすぎる場合は、圧縮率は上がりますが、速度が 低下します.
        `meta` - JDBC経由で取得したResultSetのメタデータを設定します.
      例外:
        `java.lang.Exception` - 例外.

  - ### メソッドの詳細

    - #### clear

          public void clear()

      追加データのクリア処理.

    - #### getDbId

          public long getDbId()

      DB更新IDを取得. この情報が、結果データと一致しない場合は、その結果データは古くなっています.
      定義:
        `getDbId` インタフェース内 `MimdbBase`
      戻り値:
        int DB更新IDが返却されます.

    - #### getName

          public java.lang.String getName()

      テーブル名を取得.
      定義:
        `getName` インタフェース内 `BaseTable`
      戻り値:
        String テーブル名が返却されます.

    - #### add

          public void add(java.lang.Object[] oneLine)
                   throws java.lang.Exception

      1件のデータを追加. 直接データセット用.
      パラメータ:
        `oneLine` - 追加対象のオブジェクトを設定します.
      例外:
        `java.lang.Exception` - 例外.

    - #### addAll

          public int addAll(java.util.List<java.lang.Object[]> allLine)
                     throws java.lang.Exception

      データを複数追加. 直接データセット用.
      パラメータ:
        `allLine` - 追加対象のオブジェクトを設定します.
      戻り値:
        int 追加された件数が返却されます.
      例外:
        `java.lang.Exception` - 例外.

    - #### addAllByJDBC

          public int addAllByJDBC(java.sql.ResultSet result)
                           throws java.lang.Exception

      JDBCのResultSet経由でデータ追加.
      パラメータ:
        `result` - JDBC経由で取得したResultSetを設定します.
      戻り値:
        int 追加された件数が返却されます.
      例外:
        `java.lang.Exception` - 例外.

    - #### fix

          public void fix()
                   throws java.lang.Exception

      テーブル情報のFIX. この操作を行った場合、テーブルに新たな情報は追加できません.
      例外:
        `java.lang.Exception` - 例外.

    - #### get

          public MimdbRow get(int no)
                       throws java.lang.Exception

      指定行の情報を取得.
      パラメータ:
        `no` - 対象の項番を設定します.
      戻り値:
        MimdbRow 行情報が返却されます.
      例外:
        `java.lang.Exception` - 例外.

    - #### isFix

          public boolean isFix()

      データがFIXされているか取得.
      戻り値:
        boolean [true]の場合、追加データがFixされています.

    - #### size

          public int size()

      データ件数の取得.
      戻り値:
        int データ件数が返却されます.

    - #### getMainTable

          public MimdbRow[] getMainTable()

      テーブル内配列情報を取得.
      戻り値:
        MimdbRow[] メインテーブル情報が返却されます.

    - #### getColumnSize

          public int getColumnSize()

      カラム数の取得.
      定義:
        `getColumnSize` インタフェース内 `BaseTable`
      戻り値:
        int カラム数が返却されます.

    - #### getColumnName

          public java.lang.String getColumnName(int no)

      カラム名を取得.
      定義:
        `getColumnName` インタフェース内 `BaseTable`
      パラメータ:
        `no` - カラム項番を設定します.
      戻り値:
        String カラム名が返却されます.

    - #### getColumnNameByNo

          public int getColumnNameByNo(java.lang.String name)

      指定カラム名に対する項番を取得.
      定義:
        `getColumnNameByNo` インタフェース内 `BaseTable`
      パラメータ:
        `name` - カラム名を設定します.
      戻り値:
        int カラム項番が返却されます. [-1]の場合は対象カラム名は存在しません.

    - #### getColumnType

          public int getColumnType(int no)

      カラムタイプを取得.
      定義:
        `getColumnType` インタフェース内 `BaseTable`
      パラメータ:
        `no` - カラム項番を設定します.
      戻り値:
        int カラムタイプが返却されます. -1が返却された場合は、対象カラムは存在しません. java.lang.Boolean : MimdbIndex.COLUMN_BOOL java.lang.Integer : MimdbIndex.COLUMN_INT java.lang.Long : MimdbIndex.COLUMN_LONG java.lang.Double : MimdbIndex.COLUMN_FLOAT java.lang.String : MimdbIndex.COLUMN_STRING java.sql.Date : MimdbIndex.COLUMN_DATE java.sql.Time : MimdbIndex.COLUMN_TIME java.sql.Timestamp : MimdbIndex.COLUMN_TIMESTAMP java.util.Date : MimdbIndex.COLUMN_DATE

    - #### getColumnType

          public int getColumnType(java.lang.String name)

      カラムタイプを取得.
      定義:
        `getColumnType` インタフェース内 `BaseTable`
      パラメータ:
        `name` - 対象のカラム名を設定します.
      戻り値:
        int カラムタイプが返却されます. -1が返却された場合は、対象カラムは存在しません. java.lang.Boolean : MimdbIndex.COLUMN_BOOL java.lang.Integer : MimdbIndex.COLUMN_INT java.lang.Long : MimdbIndex.COLUMN_LONG java.lang.Double : MimdbIndex.COLUMN_FLOAT java.lang.String : MimdbIndex.COLUMN_STRING java.sql.Date : MimdbIndex.COLUMN_DATE java.sql.Time : MimdbIndex.COLUMN_TIME java.sql.Timestamp : MimdbIndex.COLUMN_TIMESTAMP java.util.Date : MimdbIndex.COLUMN_DATE

    - #### getColumns

          public java.lang.String[] getColumns()

      カラム名一覧を取得.
      定義:
        `getColumns` インタフェース内 `BaseTable`
      戻り値:
        String[] カラム名一覧が返却されます.

    - #### isIndex

          public boolean isIndex(int no)

      指定項番のカラムがインデックスかチェック.
      定義:
        `isIndex` インタフェース内 `BaseTable`
      パラメータ:
        `no` - 対象のカラム項番を設定します.
      戻り値:
        boolean [true]の場合は、インデックスです.

    - #### isIndex

          public boolean isIndex(java.lang.String name)

      指定項番のカラムがインデックスかチェック.
      定義:
        `isIndex` インタフェース内 `BaseTable`
      パラメータ:
        `name` - 対象のカラム名を設定します.
      戻り値:
        boolean [true]の場合は、インデックスです.

    - #### getIndex

          public MimdbIndex getIndex(int no)

      指定項番のインデックス情報を取得.
      パラメータ:
        `no` - 対象のカラム項番を設定します.
      戻り値:
        MimdbIndex インデックスオブジェクトが返却されます. [null]の場合、インデックス情報ではありません.

    - #### getIndex

          public MimdbIndex getIndex(java.lang.String name)

      指定項番のカラムがインデックスかチェック.
      パラメータ:
        `name` - 対象のカラム名を設定します.
      戻り値:
        MimdbIndex インデックスオブジェクトが返却されます. [null]の場合、インデックス情報ではありません.

    - #### getPrimaryIndexKey

          public java.lang.String getPrimaryIndexKey()

      主キーカラム名を取得.
      戻り値:
        String 主キーカラム名が返却されます. [null]が返却された場合、主キーは存在しません.

    - #### getPrimaryIndexKeyNo

          public int getPrimaryIndexKeyNo()

      主キーカラム項番を取得.
      戻り値:
        int 主キーカラム項番が返却されます. [-1]の場合は、主キーは定義されていません.

    - #### isPrimaryIndexKey

          public boolean isPrimaryIndexKey()

      主キーが有効かチェック.
      戻り値:
        boolean [true]の場合、主キーは有効です.

    - #### searchPrimaryKey

          public MimdbResultRow searchPrimaryKey(java.lang.Object value)
                                          throws java.lang.Exception

      主キー条件を検索.
      パラメータ:
        `value` - 主キー検索条件を設定します.
      戻り値:
        MimdbResultRow 主キーに対する行情報が返却されます.
      例外:
        `java.lang.Exception` - 例外.

    - #### isComress

          public boolean isComress()

      行圧縮条件が設定されている場合.
      戻り値:
        boolean [true]の場合は、行圧縮されています.

    - #### getCompressByLine

          public int getCompressByLine()

      行圧縮サイズを取得.
      戻り値:
        int 1度に行圧縮を行う数が返却されます.

    - #### getBinaryLength

          public int getBinaryLength()

      バイナリデータ長を取得.
      戻り値:
        int バイナリデータ長が返却されます.

    - #### getCompressLength

          public int getCompressLength()

      圧縮データ長を取得.
      戻り値:
        int 圧縮データ長が返却されます.

    - #### getBinary

          public void getBinary(java.io.OutputStream out)
                         throws java.lang.Exception

      テーブル定義情報をバイナリ変換.
      パラメータ:
        `out` - 対象のOutputStreamを設定します.
      例外:
        `java.lang.Exception` - 例外.