在Play中处理URL查询参数! SQL语句?

时间:2011-08-31 21:31:44

标签: url playframework extjs4 query-parameters

我正在测试Ext JS应用程序(客户端)和Play Framework(服务端)。 我在Ext JS中使用了一个带有分页的网格。

分页部分需要将URL查询参数发送到我的Play!服务器。这没什么大不了的,但是如何在SQL语句中处理这些参数?

示例:

第一次请求:

http://myDomain:9000/GetUsers?_dc=123456789&page=1&start=0&limit=25

第二次要求:

http://myDomain:9000/GetUsers?_dc=123456789&page=2&start=25&limit=25

我的想法: 通常在SQL中,您可以设置 TOP 结果:

SELECT TOP 25 FROM USERS

但是如何将第二个请求转换为Sql查询?

感谢您花时间帮助我!

==>> 编辑:我正在开发SQL Server 2008,但我希望这适用于Sql Server 2005或更高版本以及Oracle 9及更高版本: - )

2 个答案:

答案 0 :(得分:0)

您可以尝试以下方式:

WITH Query_1 AS (
    SELECT
        Field1, Field2, etc
        ROW_NUMBER() OVER (ORDER BY Field1, Field2, etc) AS RowID
    FROM Table
    WHERE x=y
)
SELECT * FROM Query_1 WHERE RowID >= @start
AND RowID < @start + @limit

当然ROW_NUMBER在SQL 2000中不存在,但由于你没有告诉我们你正在使用哪个 SQL,我假设有更新的东西。

答案 1 :(得分:0)

因为您正在使用Play!框架,你应该做的是有一个适当的model,实体代表你的SQL表。然后收到一系列结果是built in

// 25 max users start at 25
List<User> users = User.all().from(25).fetch(25);

您还应该查看pagination module。我没有测试过它,但它看起来就像你想要的那样。