我有一个程序,它可以发出SQL查询来返回对象的长列表,我想让GUI做出响应,并且以块的形式接收SQL结果的一部分可以在查询中的一些数据到达时立即更新GUI。
有什么办法吗?现在,在查询返回整个Resultset之前,GUI什么都不显示,所以SwingWorker publish()方法不是很有用。
您应该限制SQl查询。例如,在MySQL中,您可以添加LIMIT 10,20以仅检索部分选择结果
[LIMIT [offset,] rows | rows OFFSET offset]
UPDATE您可以向同一查询添加计数,并在第一行中获取计数,以避免额外的DB调用
select * from (select count(*) as count, 0 as id from users
union all
select 0 as count, id from users limit 0,10) full
ORDER BY count desc
limit 0,11;