日期:2014-05-20  浏览次数:20831 次

swing 实时界面刷新
最近做了一个swing的项目,实时从数据库读取数据





界面如图,我是画了一个table,然后用定时器去刷,由于所有数据存储不是存储在一个数据表中,还要对应好第一个参数,所以每个单元格中的数据都要去数据库单独查询,这样就要有很多的查询动作,造成CPU使用率100%,系统很慢,有什么好的办法解决吗?
界面 swing 数据存储 数据库 实时

------解决方案--------------------
如果是一条一条的查询,并且没有用数据库连接池,你查询一次就进行一次数据库的连接、销毁,那么反复的进行几百次建立、销毁数据库连接是比较消耗cpu的,有可能会出现这种情况。
如果真是这种情况,完全没必要一条一条的查,这样太消耗资源了,你可以这么写:
select * from oilwell_backpressure where oilwell_name in('广13-4','广64斜-1',...,...,...) order by oilwell_id desc

或者
select * from oilwell_backpressure where oilwell_name ='广13-4' union all  select * from oilwell_backpressure where oilwell_name ='广64斜-1' union all .....
这两种都可以,你试试哪种速度快点。这样查询建立一次连接就ok了。