JISP用法
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://convoy.blog.51cto.com/134374/47386 |
网上找不到任何有价值的东西,只能自己研究源代码了
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 本文出自 “blog.convoy.com” 博客,请务必保留此出处http://convoy.blog.51cto.com/134374/47386 本文出自 51CTO.COM技术博客 |


huhang00
博客统计信息
热门文章
最新评论
友情链接