从程序中的objectdb数据库中检索值

时间:2012-05-13 04:05:37

标签: java database objectdb

我在尝试通过程序获取数据时遇到了一些问题。我使用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);

此处未返回任何结果。我的输出是:
  - TEST find -

结果是>> []

我的课程代码如下。

    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);

}

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

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

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

相关问题