gpt4 book ai didi

java - db4o获取特定对象android java

转载 作者:行者123 更新时间:2023-12-01 14:33:25 26 4
gpt4 key购买 nike

我正在制作一个android项目,并且在Java方面没有太多经验。所以我现在能够将对象存储在db4o数据库中,我也可以检索所有它们。但如果我想获取特定项目的列表,则仅返回 1 个项目(即使有更多项目)。

我将向您展示我的代码:

这是访问数据库的代码,这应该可以工作。它是 db4oHelper 类中的一个函数

public ObjectContainer db() {

Log.i(Db4oHelper.class.getName(), "Accessing Database...");

if ((Db4oHelper.objectContainer == null) || ((Db4oHelper.objectContainer != null) && Db4oHelper.objectContainer.ext().isClosed())) {

Toast.makeText(this.context, "Creating DB Config", Toast.LENGTH_SHORT).show();

EmbeddedConfiguration c = Db4oEmbedded.newConfiguration();
c.common().objectClass(Event.class).cascadeOnUpdate(true);
c.common().objectClass(Event.class).cascadeOnActivate(true);
c.common().allowVersionUpdates(true);
c.common().detectSchemaChanges(true);
c.common().messageLevel(2);

Db4oHelper.objectContainer = Db4oEmbedded.openFile(c, db4oDBFullPath(this.context));

}
return Db4oHelper.objectContainer;
}

我还有一个 EventProvider 类,它扩展了 db4oHelper 类。所有代码都是为了存储和获取对象而编写的。这是一个即使有更多对象也只返回 1 个对象的函数。 (我根据db4o教程pdf的示例制作的)

public List eventsFriday()
{
//function to get events by day (ex all events of friday)

List <Event> events = db().query(new Predicate<Event>() {
public boolean match(Event event) {
return event.getDay().equals("friday");
}
});
return events;
}

所以现在我做了一个函数来获取星期五的事件,目前有 2 个。但它只返回 1。有人有想法吗?

我还想让这个功能工作更多天,例如周五、周六和周日。但如果我通过该函数传递一个字符串,我就无法在新的谓词函数中使用它。

像这样:

public List eventsByDay(**String day**)
{
//function to get events by day (ex all events of friday)

List <Event> events = db().query(new Predicate<Event>() {
public boolean match(Event event) {
return event.getDay().equals(**day**);
}
});
return events;
}

最佳答案

如果声明为最终,则可以使用day:

public List eventsByDay(final String day)
{
//function to get events by day (ex all events of friday)

List <Event> events = db().query(new Predicate<Event>() {
public boolean match(Event event) {
return event.getDay().equals(day);
}
});
return events;
}

关于java - db4o获取特定对象android java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16690417/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com