org.maachang.dbm
クラス MDbmManager

java.lang.Object
  上位を拡張 org.maachang.dbm.MDbmManager

public class MDbmManager
extends java.lang.Object

MaachangDbmマネージャ.
MaachangDbmとは、javaで作成されたDBM[データベースマネージャ]で Key,Value形式の内容を永続化させます.
データ管理最大数は、4250000件(425万件)です.

MaachangDbmの利用方法について説明します.
MaachangDbmを利用するには、まず最初に、以下のように、MaachangDbmマネージャを初期化する 必要があります.

 MDbmManager.getInstance().open( "directory" ) ;
 
 

第一引数には、永続化内容を保持するディレクトリ名を指定します.
これで、MaachangDbmが利用可能になります.
また、MaachangDbmを操作するには、

 MDbm dbm = MDbmManager.getInstance().getMDbm() ;
 dbm.put( "hoge".getBytes( "UTF8" ),"hogehoge".getBytes( "UTF8" ) ;
 byte[] b = dbm.get( "hoge".getBytes( "UTF8" ) ) ;
 System.out.println( new String( b,"UTF8" ) ) ;
 dbm.remove( "hoge".getBytes( "UTF8" ) ) ;
 
 

などで、利用できますが、この場合["hoge".getBytes( "UTF8" )]などと記述するのは、面倒です.
このため、MaachangDbm操作用オブジェクトとして、別途[MDbmOp]が用意されています.
利用方法としては、以下の通りです.

 MDbmOp op = MDbmManager.getInstance().getMDbmOp() ;
 
 

のようにMaachangDbmOpを取得します.そして、MaachangDbmOpの利用方法は、下記の通りです.

 op.put( "hoge","moge" ) ;
 String a = op.getString( "hoge" ) ;
 op.remove( "hoge" ) ;
 
 

また、MaachangDbmは、トランザクションをサポートしており、利用方法は以下のようになります。
 // MDbmをトランザクションモードで取得.
 MDbm dbm = MDbmManager.getInstance().getMDbm( true ) ;
 
 // コミット.
 dbm.commit() ;
 
 // ロールバック.
 dbm.rollback() ;
 
 

また、2フェイスコミットなどを実施したい場合は、下記のように、commitの前に、
 // MDbmをトランザクションモードで取得.
 MDbm dbm = MDbmManager.getInstance().getMDbm( true ) ;
 
 // データ書き込み可能かチェック.
 dbm.check() ;
 
 // コミット.
 dbm.commit() ;
 
 

このようにして書き込み可能かチェックできます.

導入されたバージョン:
MaachangDBM 1.02
バージョン:
2008/01/18
作成者:
masahito suzuki

メソッドの概要
 void close()
          MaachangDbmマネージャをクローズ.
 void flush()
          MaachangDbmマネージャを更新.
 long freeSpace()
          利用可能ディスク容量を取得.
 java.lang.String getDirectory()
          オープンディレクトリを取得.
static MDbmManager getInstance()
          MaachangDbmマネージャを取得.
 MDbm getMDbm()
          MaachangDbmオブジェクトを取得.
 MDbm getMDbm(boolean mode)
          MaachangDbmオブジェクトを取得.
 MDbmOp getMDbmOp()
          MaachangDbm操作用オブジェクトを取得.
 MDbmOp getMDbmOp(boolean mode)
          MaachangDbm操作用オブジェクトを取得.
 boolean isClose()
          MaachangDbmマネージャが既にクローズされているかチェック.
 int maxSector()
          現在の全セクター数を取得.
 void open(java.lang.String directory)
          MaachangDbmマネージャをオープン.
 int sectorFile()
          セクター管理ファイル数を取得.
 int size()
          格納データ数を取得.
 int useSector()
          利用可能セクター数を取得.
 
クラス java.lang.Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

メソッドの詳細

getInstance

public static final MDbmManager getInstance()
MaachangDbmマネージャを取得.

MaachangDbmマネージャを取得します.

戻り値:
MDbmManager MaachangDbmマネージャが返されます.

open

public void open(java.lang.String directory)
          throws java.lang.Exception
MaachangDbmマネージャをオープン.

MaachangDbmマネージャをオープンします.

パラメータ:
directory - 対象のディレクトリ名を設定します.
例外:
java.lang.Exception - 例外.

close

public void close()
MaachangDbmマネージャをクローズ.

MaachangDbmマネージャをクローズします.


flush

public void flush()
           throws java.lang.Exception
MaachangDbmマネージャを更新.

MaachangDbmマネージャを更新します.

例外:
java.lang.Exception - 例外.

getMDbm

public MDbm getMDbm()
MaachangDbmオブジェクトを取得.

MaachangDbmオブジェクトを取得します.

戻り値:
MDbm MaachangDbmオブジェクトが返されます.

getMDbm

public MDbm getMDbm(boolean mode)
MaachangDbmオブジェクトを取得.

MaachangDbmオブジェクトを取得します.

パラメータ:
mode - [true]の場合、トランザクションオブジェクトが返されます.
戻り値:
MDbm Maachangbmオブジェクトが返されます.

getMDbmOp

public MDbmOp getMDbmOp()
MaachangDbm操作用オブジェクトを取得.

MaachangDbm操作用オブジェクトを取得します.

戻り値:
MDbmOp MaachangDbm操作用オブジェクトを取得します.

getMDbmOp

public MDbmOp getMDbmOp(boolean mode)
MaachangDbm操作用オブジェクトを取得.

MaachangDbm操作用オブジェクトを取得します.

パラメータ:
mode - [true]の場合、トランザクションオブジェクトが返されます.
戻り値:
MDbmOp MaachangDbm操作用オブジェクトを取得します.

isClose

public boolean isClose()
MaachangDbmマネージャが既にクローズされているかチェック.

MaachangDbmマネージャが既にクローズされているかチェックします.

戻り値:
boolean [true]の場合、既にクローズしています.

getDirectory

public java.lang.String getDirectory()
オープンディレクトリを取得.

現在オープン中のディレクトリを取得します.

戻り値:
String オープン中のディレクトリが返されます.
[null]が返された場合、マネージャはクローズしています.

size

public int size()
格納データ数を取得.

格納データ数を取得します.

戻り値:
int 格納データ数が返されます.
[-1]が返された場合、マネージャはクローズしています.

sectorFile

public int sectorFile()
セクター管理ファイル数を取得.

現在オープン中のセクター管理ファイル数を取得します.

戻り値:
int セクター管理ファイル数が返されます.
[-1]が返された場合、マネージャはクローズしています.

useSector

public int useSector()
利用可能セクター数を取得.

利用可能セクター数を取得します.

戻り値:
int 利用可能セクター数が返されます.
[-1]が返された場合、マネージャはクローズしています.

maxSector

public int maxSector()
現在の全セクター数を取得.

現在の全セクター数を取得します.

戻り値:
int 全セクター数が返されます.
[-1]が返された場合、マネージャはクローズしています.

freeSpace

public long freeSpace()
利用可能ディスク容量を取得.

利用可能ディスク容量を取得します.

戻り値:
long MaachangDbmを展開しているディレクトリ下で利用可能なディスク容量が返されます.
[-1L]が返された場合、マネージャはクローズしています.