大家好,又见面了,我是你们的朋友全栈君。
public class Testdb4oIndex {
public static class Record {
String strKey;
long intKey;
};
public static class Assert {
public static void that(boolean condition) {
if (!condition) {
throw new Error(“Assertion failed”);
}
}
}
static final String FILE = “testindex.yap”;
final static int nRecords = 100000;
static public void main(String[] args) {
new File(FILE).delete();
Configuration conf = Db4o.configure();
conf.objectClass(Record.class).objectField(“strKey”).indexed(true);
conf.objectClass(Record.class).objectField(“intKey”).indexed(true);
conf.weakReferences(false);
conf.discardFreeSpace(Integer.MAX_VALUE);
conf.automaticShutDown(false);
conf.lockDatabaseFile(false);
ObjectContainer db = Db4o.openFile(FILE);
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.set(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;
Query q = db.query();
q.constrain(Record.class);
q.descend(“intKey”).constrain(new Long(key));
Record rec1 = (Record)q.execute().next();
q = db.query();
q.constrain(Record.class);
q.descend(“strKey”).constrain(Long.toString(key));
Record rec2 = (Record)q.execute().next();
Assert.that(rec1 != null && rec1 == rec2);
}
System.out.println(“Elapsed time for performing ” + nRecords*2 + ” index searches: “
+ (System.currentTimeMillis() – start) + ” milliseconds”);
start = System.currentTimeMillis();
Query q = db.query();
q.constrain(Record.class);
ObjectSet objectSet = q.execute();
while(objectSet.hasNext()){
db.delete(objectSet.next());
}
db.commit();
System.out.println(“Elapsed time for deleting ” + nRecords + ” records: “
+ (System.currentTimeMillis() – start) + ” milliseconds”);
db.close();
}
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/162596.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...