📄 jnitestindex.java
字号:
import jnicli.*;
import java.util.*;
public class JniTestIndex {
static class Record {
String strKey;
long intKey;
static final String CONSTRAINTS = "strKey using index, intKey using index";
}
final static int nRecords = 100000;
final static int initSize = 8*1024*1024; // 40Mb page pool
static public void main(String[] args) {
Database db = new DatabaseJNI();
db.open(Database.READ_WRITE, "testjni", "testjni.dbs", initSize, 0);
long start = System.currentTimeMillis();
long key = 1999;
int i;
for (i = 0; i < nRecords; i++) {
Record rec = new Record();
key = (3141592621L*key + 2718281829L) % 1000000007L;
rec.intKey = key;
rec.strKey = Long.toString(key);
db.insert(rec);
}
db.commit();
System.out.println("Elapsed time for inserting " + nRecords + " records: "
+ (System.currentTimeMillis() - start) + " milliseconds");
start = System.currentTimeMillis();
key = 1999;
for (i = 0; i < nRecords; i++) {
key = (3141592621L*key + 2718281829L) % 1000000007L;
Cursor cursor1 = db.select(Record.class, "strKey='" + key + "'", 0);
if (cursor1.size() != 1 ) {
throw new Error("search by strKey returns " + cursor1.size() + " instead of 1");
}
Record rec1 = (Record)cursor1.nextElement();
Cursor cursor2 = db.select(Record.class, "intKey=" + key, 0);
if (cursor2.size() != 1 ) {
throw new Error("search by intKey returns " + cursor2.size() + " instead of 1");
}
Record rec2 = (Record)cursor2.nextElement();
if (rec1.intKey != rec2.intKey || rec1.intKey != key || !rec1.strKey.equals(rec2.strKey)) {
throw new Error("Inconsitent fetch");
}
}
System.out.println("Elapsed time for performing " + nRecords*2 + " index searches: "
+ (System.currentTimeMillis() - start) + " milliseconds");
start = System.currentTimeMillis();
db.delete(Record.class, "");
System.out.println("Elapsed time for deleting " + nRecords + " records: "
+ (System.currentTimeMillis() - start) + " milliseconds");
db.close();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -