使用db4o的SODA进行数据库的查询,所使用的Person对象在前面的文章中已经写过
import com.db4o.Db4o;
import com.db4o.Db4oEmbedded;
import com.db4o.ObjectContainer;
import com.db4o.ObjectSet;
import com.db4o.eight.study.bean.Person;
import com.db4o.query.Constraint;
import com.db4o.query.Query;
@SuppressWarnings("deprecation")
public class DB4oQueryUseSODA {
final static String DB4OFILENAME = System.getProperty("user.dir")
+ "/database.db4o";
static {
Db4o.configure().objectClass(Person.class).objectField("id").indexed(true);
}
public static void SODAEQueryByConditon(){
ObjectContainer db = Db4oEmbedded.openFile(
Db4oEmbedded.newConfiguration(), DB4OFILENAME);
try {
Query query=db.query();
query.constrain(Person.class);
query.descend("name").constrain("Person");
ObjectSet<Person> result = query.execute();
for (Person per : result) {
System.out.println("id = " + per.getId()+
", name = "+ per.getName() + ", password = " + per.getPassword());
}
} finally {
db.close();
}
}
public static void SODAEQuery(){
ObjectContainer db = Db4oEmbedded.openFile(
Db4oEmbedded.newConfiguration(), DB4OFILENAME);
try {
Query query=db.query();
query.constrain(Person.class);
ObjectSet<Person> result = query.execute();
for (Person per : result) {
System.out.println("id = " + per.getId()+
", name = "+ per.getName() + ", password = " + per.getPassword());
}
} finally {
db.close();
}
}
public static void SODAEQueryByManyCondition(){
ObjectContainer db = Db4oEmbedded.openFile(
Db4oEmbedded.newConfiguration(), DB4OFILENAME);
try {
Query query=db.query();
query.constrain(Person.class);
Constraint constraint = query.descend("name").constrain("Aimi");
Constraint con = query.descend("id").constrain("12");
query.descend("password").constrain("234156").and(constraint).or(con);
ObjectSet<Person> result = query.execute();
for (Person per : result) {
System.out.println("id = " + per.getId()+
", name = "+ per.getName() + ", password = " + per.getPassword());
}
} finally {
db.close();
}
}
public static void main(String[] args) {
// DB4oQueryUseSODA.SODAEQueryByConditon();
// DB4oQueryUseSODA.SODAEQuery();
long startTime = System.currentTimeMillis();
int count = 10;
while(count-- > 0) {
DB4oQueryUseSODA.SODAEQueryByManyCondition();
}
long endTime = System.currentTimeMillis();
System.out.println("spend time : " + (endTime - startTime));
}
}