循环更新数据库java_java – 无限循环数据库检查

我正在使用JDBC,需要不断检查数据库以防止更改值.

我目前所拥有的是无限循环运行,内部循环迭代更改的值,每次迭代检查数据库.

public void runInBG() { //this method called from another thread

while(true) {

while(els.hasElements()) {

Test el = (Test)els.next();

String sql = "SELECT * FROM Test WHERE id = '" + el.getId() + "'";

Record r = db.getTestRecord(sql);//this function makes connection, executeQuery etc...and return Record object with values

if(r != null) {

//do something

}

}

}

}

我认为这不是最好的方式.

我正在考虑的另一种方式是反过来,继续迭代数据库.

UPDATE

感谢您关于计时器的反馈,但我认为它不会解决我的问题.

一旦在数据库中发生了变化,我需要几乎立即处理结果与变化的值(示例代码中的“els”).

即使数据库没有改变,它仍然必须不断检查变化的值.

更新2

好的,对任何对答案感兴趣的人,我相信我现在有解决方案.基本上解决方案是不要使用数据库.加载,更新,添加等…仅从数据库到内存需要什么.

这样您就不必经常打开和关闭数据库,只需在对数据库进行更改时处理数据库,并将这些更改反映到内存中,并且只处理内存中的任何内容.

当然这是更多的内存密集型,但性能是绝对的关键.

至于周期性的“计时器”答案,我很抱歉,但这根本不对.没有人回应有一个理由如何使用计时器来解决这种特殊情况.

但是再次感谢您的反馈,尽管如此仍然有用.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值