网上找不到任何有价值的东西,只能自己研究源代码了
 
JISP是用B-树进行存储任意类型数据的小型数据库
com.coyotegulch.jisp包里面实现的是核心算法,生成的jar包可以引入工程直接调用
外面的文件是用来测试的例子

*****************存储数据******************
用IndexedObjectDatabase创建一个对象database,用来调用存储数据库
构造函数:IndexedObjectDatabase(String filename, boolean is_new)
          filename 是文件名
          is_new   是boolean型的参数,输入文件是不是新的。当为true时新建这个文件,如果重名则覆盖原有文件。如果是false则载入原有文件。
用BTreeIndex创建一个对象index来建立索引
构造函数:BTreeIndex(String name, int order, KeyObject nullKey, boolean hasDupes)
          name      文件名
          order     树节点的个数
          nullkey   传递进来的数据类型
          hasDupes  是否允许值重复
构造函数:BTreeIndex(String name)
          name      已有文件的名字
调用attachIndex(ObjectIndex index)方法 database.attachIndex(index);
把索引加入数据库
调用write(KeyObject key[], Serializable obj)方法 database.write(keyArray,record);
          key        与index类型匹配
          obj        要存储的数据
例如:IndexedObjectDatabase database = new IndexedObjectDatabase("db",true);
      BTreeIndex index1 = new BTreeIndex("index",8,new ZipKey(),false);
      database.attachIndex(index1);
      KeyObject [] keyArray = new KeyObject[1];
      keyArray[0] = new ZipKey(zip);
      database.write(keyArray,record);
备:  keyObject是要实现的一个数据类型说是与objectindex相关,现在还不是很明白。
      这里的Zipkey是对它的一种实现,可以所谓要进行搜索的检索键值
      record是要存储的数据
 
 
*****************读取数据******************
      IndexedObjectDatabase database = new IndexedObjectDatabase("db",false);  //false 表示已经存在文件了
      BTreeIndex index1 = new BTreeIndex("index");                             //载入已经创建的索引
      database.attachIndex(index1);
      KeyObject [] keyArray = new KeyObject[1];
      keyArray[0] = new ZipKey(zip);
      database.read(keyArray,record);

Object read(KeyObject key, ObjectIndex index)方法,读取键值为key的,索引为index的数据
Object read(IndexIterator iterator)方法,读取iterator里面的数据,用iterator.moveNext()转到下一个元素,调用之前要建立BTreeIterator iterator = new BTreeIterator(codeIndex);

删除数据调用database.remove(keyArray);
综述:用到的类IndexedObjectDatabase 建立数据库
              BTreeIndex 建立索引
              KeyObject 实现这个接口,作为索引数据
              BTreeIterator 建立树中的iterator