Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SmartGWT RestDateSource和分页(大型数据集)动态数据_Java_Rest_Gwt_Jdbc_Smartgwt - Fatal编程技术网

Java SmartGWT RestDateSource和分页(大型数据集)动态数据

Java SmartGWT RestDateSource和分页(大型数据集)动态数据,java,rest,gwt,jdbc,smartgwt,Java,Rest,Gwt,Jdbc,Smartgwt,我有一个用于日志消息的数据库表,可以随时插入新行。我想在网格中显示它们,当您向下滚动时,我想从这个表(服务器端)请求更多行,但不受新添加行的影响。只有刷新整个网格时,新行才必须可见 我不确定如何使用JDBC请求范围(从到)内的行。我认为没有可移植的(跨不同数据库的)SQL查询可以做到这一点?(我正在使用MYSQL) 我认为,在阅读此表的第一页后,我必须从日志表向客户端发送Max Id,然后在SQL中使用此Max Id作为参数请求新行(其中IdSmartGWT-Pro,最好自动执行此操作。即使您不

我有一个用于日志消息的数据库表,可以随时插入新行。我想在网格中显示它们,当您向下滚动时,我想从这个表(服务器端)请求更多行,但不受新添加行的影响。只有刷新整个网格时,新行才必须可见

我不确定如何使用JDBC请求范围(从到)内的行。我认为没有可移植的(跨不同数据库的)SQL查询可以做到这一点?(我正在使用MYSQL)


我认为,在阅读此表的第一页后,我必须从日志表向客户端发送Max Id,然后在SQL中使用此Max Id作为参数请求新行(其中IdSmartGWT-Pro,最好自动执行此操作。即使您不想使用Pro,也可以下载评估(smartclient.com/builds)观察服务器端控制台,在那里记录SQL查询。

下面是我将要做的;我认为您的每一行都有一个不断增长的数字ID或时间戳

在开始查询数据之前,您需要调用一个webservice来查询当前id(例如最后一行是12345)


然后向数据源添加一个Criteria对象,该对象表示“rowId我有另一个想法:我可以从第一个页面结果(收到的第一行的id)中找到这个MAXID”,但这只有在禁用用户界面中的排序时才起作用,这不是一个坏主意。但如何将此参数从客户端发送到服务器以获得其他页面,以及如何使用JDBC请求范围内的行?我看到它们使用的是限制(SQL)但它们仍然存在新插入的并发行的问题。我们提供了一个标志,您可以在服务器的响应上设置该标志以使当前缓存无效。确定何时使缓存无效是基于与上述类似的策略(rowId)当然,该策略不会处理删除。因为这样做需要您有一个序列字段或类似的字段来跟踪更改,所以我们不会自动打开它。但是,如果您有可用的数据来进行检测,则可以直接添加。我们的服务器框架允许您添加Java逻辑,该逻辑在automa之外运行对于这种用法,我可以使用tic SQL操作。顺便问一句,我怎么才能做出“小于或等于”的判断?我会选择“rowId<(12345+1)"请参阅我对下面答案的评论-建议的策略处理插入而不是删除,也不处理对已加载记录的更新,这可能也是一项要求。更完整的实现是,在添加或更新记录时,有一个字段,该字段获取当前时间戳,然后传递最早记录的时间戳aded记录在客户机和服务器之间来回移动,当出现不匹配时,缓存将失效。我们在SmartGWT中对此进行了简化,因为有一个字段类型“modifierTimestamp”会自动执行此操作。