0

我在尝试通过程序获取数据时遇到了一些问题。我使用 objectDB 作为我的数据库。另外,我的数据库已经设置好了,并且我已经将laptop.odb 文件放到了我的objectDB 安装的db 文件夹中。此外,当我转到资源管理器并触发查询时:

select this.modelName == "HP Pavillion"

出现正确的结果。但是,当我尝试对我的代码做同样的事情时,如下所示

public static void main(String argv[]) {
PersistenceManager pm = Utilities.getPersistenceManager("laptop.odb"); System.out.println("-- TEST --\n");
Query query = pm.newQuery(Laptop.class,"this.modelName == \"HP Pavillion\""); Collection result = (Collection)query.execute(); System.out.println("Result is >> "+result);

这里不返回任何结果。我的输出是:
--测试找到--

结果是 >> []

我的课程代码如下。

    package com.project;

    import java.util.*;

    import javax.annotation.processing.Processor;
    import javax.jdo.*;

    import com.objectdb.Utilities;

    public class Laptop {

        String modelName; // key

public static void main(String argv[]) {
        PersistenceManager pm = Utilities.getPersistenceManager("laptop.odb");
        System.out.println("-- TEST find --\n");
        Query query = pm.newQuery(Laptop.class,"this.modelName == \"HP Pavillion\"");
        Collection result = (Collection)query.execute();
        System.out.println("Result is >> "+result);

}

有什么建议么 ?

4

1 回答 1

1

原因可能是“laptop.odb”指的是一个不存在的 ObjectDB 数据库。在这种情况下,会自动创建一个新数据库。因为它创建的新数据库是空的,所以查询没有返回任何结果。

尝试指定现有数据库的绝对路径。

于 2012-05-13T11:30:37.940 回答