使用db4o的NQ进行数据库的查询

本文详细介绍了如何利用db4o的NQ接口进行数据库查询,包括条件查询、全表查询及多条件组合查询,并通过实例展示了具体实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用db4o的NQ进行数据库的查询,所使用的Person的对象已经在前面的文章中写过

import java.util.List;

import com.db4o.Db4oEmbedded;
import com.db4o.ObjectContainer;
import com.db4o.eight.study.bean.Person;
import com.db4o.query.Predicate;

public class DB4oQueryUseNQ {
	final static String DB4OFILENAME = System.getProperty("user.dir")
			+ "/database.db4o";
	
	public static void NQQueryByCondition() {
		ObjectContainer db = Db4oEmbedded.openFile(
				Db4oEmbedded.newConfiguration(), DB4OFILENAME);
		try {
			List<Person> result = db.query(new Predicate<Person>() {
				private static final long serialVersionUID = 1L;
			
				public boolean match(Person person) {
			        return "Person".equals(person.getName());
			    }
			});
			
			for (Person per : result) {
			    System.out.println("id = " + per.getId()+
			    		", name = "+ per.getName() + ", password = " + per.getPassword());
			}
		} finally {
			db.close();
		}
	}
	
	public static void NQQuery() {
		ObjectContainer db = Db4oEmbedded.openFile(
				Db4oEmbedded.newConfiguration(), DB4OFILENAME);
		try {
			List<Person> result = db.query(new Predicate<Person>() {
				private static final long serialVersionUID = 1L;
				public boolean match(Person person) {
			        return true;
			    }
			});
			
			for (Person per : result) {
			    System.out.println("id = " + per.getId()+
			    		", name = "+ per.getName() + ", password = " + per.getPassword());
			}
		} finally {
			db.close();
		}
	}
	
	public static void NQQueryByManyCondition() {
		ObjectContainer db = Db4oEmbedded.openFile(
				Db4oEmbedded.newConfiguration(), DB4OFILENAME);
		try {
			List<Person> result = db.query(new Predicate<Person>() {
				private static final long serialVersionUID = 1L;
				public boolean match(Person person) {
			        return person.getId().equals("000003")
			        		&&person.getName().equals("Aimi")
			        		||person.getPassword().equals("132345");
			    }
			});
			
			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) {
//		DB4oQueryUseNQ.NQQueryByCondition();
//		DB4oQueryUseNQ.NQQuery();
		DB4oQueryUseNQ.NQQueryByManyCondition();
	}
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值