Codename One 数据库打印行范围

Codename One Database print range of rows

我正在使用代号一从数据库中获取数据并将其显示在 table 中。

这运行得很好,现在我正在尝试添加一个功能来限制 table 中显示的项目数量。为此,我想从数据库中检索选定数量的列。

不幸的是,常见的 java sql 操作似乎不起作用。以下是我到目前为止所拥有的。所有方法都不会抛出任何错误,但也不会显示所需的一个或多个范围。获得选择的另一种方法可能是 ArrayList,但我非常愿意坚持直接方法,因为这似乎是相对简单和优雅的解决方案。

    db = display.getInstance().openOrCreate("MyDB.db");
    db.execute("CREATE TABLE IF NOT EXISTS Termine (Date NOT NULL,Event NOT NULL, Date_String NOT NULL)");

    // prints the entire number of items from the database
    cur = db.executeQuery("select * from (select * from Termine order by Date) where Date >= 5;");

    // doesn't print anything
    cur = db.executeQuery("SELECT * from ( select m.*, Date r from Termine m ) where r > 4 and r < 10;");

    // doesn't print anything
    cur = db.executeQuery("SELECT * from ( select m.*, Date r from Termine m ) where r BETWEEN 5 AND 10;");

    while (cur.next()) {

        Row currentRow = cur.getRow();

        String event = currentRow.getString(1);

        System.out.println(event);

    }

我的方法可行吗?任何帮助将不胜感激。

您可以使用 LIMIT SQL 关键字,如 here 所述。

SELECT column_list FROM table LIMIT row_count OFFSET offset;

一个好的做法是搜索 "sqlite" 和您正在寻找的 SQL 功能,因为所有平台上的移动 SQL 数据库都基于 sqlite,它有一些怪癖。