问题描述
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。——>你的需求运行N次:程序中查数据库值-----26(正确应该是21,数据库中显示的为21。与程序中查询出来不匹配)运行N+1次:程序中查数据库值-----25(此时数据库中显示的是25,正确。与程序中查询出来相对应)运行N+2次:程序中查数据库值-----24(此时数据库中显示的是24,正确。与程序中查询出来相对应)如果26那里是21的话,后边的25、24不是都错了吗?
解决方案四:
程序中有缓存?猜不出来。贴代码吧。
解决方案五:
没搞缓存啊,我用了hibernate的,查询的时候查到缓存了?
解决方案六:
引用2楼acherat的回复:
每运行一次程序,对应数值-1。——>你的需求运行N次:程序中查数据库值-----26(正确应该是21,数据库中显示的为21。与程序中查询出来不匹配)运行N+1次:程序中查数据库值-----25(此时数据库中显示的是25,正确。与程序中查询出来相对应)运行N+2次:程序中查数据库值-----24(此时数据库中显示的是24,正确。与程序中查询出来相对应)如果26那里……
程序中数值26,再运行一遍程序,数据库中的数值也更改成25了。
解决方案七:
引用4楼lhw_5的回复:
没搞缓存啊,我用了hibernate的,查询的时候查到缓存了?
Hibernate是有缓存。
解决方案八:
hibernate.......
解决方案九:
hibernateDAO中加了session.flush();session.clear();状况好像消失了。。。。。测试了100多次都没出问题了。。。
解决方案十:
这个得贴代码才行无码无真像
解决方案十一:
引用8楼lhw_5的回复:
hibernateDAO中加了session.flush();session.clear();状况好像消失了。。。。。测试了100多次都没出问题了。。。
都没清空。
解决方案十二:
引用8楼lhw_5的回复:
hibernateDAO中加了session.flush();session.clear();状况好像消失了。。。。。测试了100多次都没出问题了。。。
嗯。这就是Hibernate缓存清理。祝贺。
解决方案十三:
看看代码来