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,它有一些怪癖。
我正在使用代号一从数据库中获取数据并将其显示在 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,它有一些怪癖。