SQL2000数据库    表中有一数据  int类型的  数值 为33   
每运行一次程序,对应数值-1,。
运行1次:程序中查数据库值-----32
运行2次:程序中查数据库值-----31
运行3次:程序中查数据库值-----30
运行4次:程序中查数据库值-----29

当我运行多次以后,正确数值应该是21),但从程序当中查询数据库表得到数值为24,或者26,28。
如:
运行N次:程序中查数据库值-----26(正确应该是21,数据库中显示的为21。与程序中查询出来不匹配)
运行N+1次:程序中查数据库值-----25(此时数据库中显示的是25,正确。与程序中查询出来相对应)
运行N+2次:程序中查数据库值-----24(此时数据库中显示的是24,正确。与程序中查询出来相对应)


再运行多次,正确数值应该是15,但从程序当中查询数据库表得到数值为16,或18,反正比15大为什么从程序当中查数据库就不正确了呢,求解呀,请各位大侠给分析下什么情况啊。

解决方案 »

  1.   

    每运行一次程序,对应数值-1。     ——>你的需求运行N次:程序中查数据库值-----26(正确应该是21,数据库中显示的为21。与程序中查询出来不匹配)
    运行N+1次:程序中查数据库值-----25(此时数据库中显示的是25,正确。与程序中查询出来相对应)
    运行N+2次:程序中查数据库值-----24(此时数据库中显示的是24,正确。与程序中查询出来相对应)如果26那里是21的话,后边的25、24不是都错了吗?
      

  2.   

    没搞缓存啊,我用了hibernate的,查询的时候查到缓存了?
      

  3.   

    hibernateDAO中加了session.flush();session.clear(); 状况好像消失了。。测试了100多次都没出问题了
      

  4.   

    嗯。这就是Hibernate缓存清理。祝贺。