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

相同的sql语句在java程序中查询和直接在数据库中查询查出来的数据不一样
相同的sql语句在java程序中查询和直接在数据库中查询查出来的数据不一样,这是为什么呢,可能是什么原因造成的,小弟的客户要求做统计,一共6个类别,统计出每个类别考证和复审的人数,小弟在程序中循环查询,一共需要12条语句,但是查出来的数据和直接在数据库中查出来的数据不一样,这是为什么呢?望高手能够解答,在线等,谢谢

------解决方案--------------------
你在数据库中做了插入,或者删除修改没有提交?
------解决方案--------------------
这个理论上不可能

也就是说,肯定是哪儿出错了,

比如:

数据库连接的不一样
java中sql语句的查询条件和直接程序不一样
...
------解决方案--------------------
估计是 字符串的问题 可能多了什么 或者少了什么

你可以把 程序中的语句打印出来 然后运行下这条语句 检查下
------解决方案--------------------
我觉得也是,应该是代码问题吧,应该是代码不一样
------解决方案--------------------
sql语句打印出来去执行,如果还不一样就是你数据库操作的没提交!
------解决方案--------------------
查询语句最好加上 按某个字段排序 例如主键
我以前做分页的时候就出现过 向下翻页时出现重复的数据
原因就是你对数据库的查询自己不排序的话 数据库的排序是随机的 数据量少是没什么影响
不过你是统计数量理论上是不会有问题的,还是把SQL 打印出啦看看吧

------解决方案--------------------
最好的办法是把sql语句打印看看,亦或看看返回的时候有没有进行其它的操作,例如数据截取之类的
------解决方案--------------------
应该是程序代码问题 ,你可以把程序中的sql语句,打印出来 和数据库的sql进行一下对比
------解决方案--------------------

是否有数据没有commit
------解决方案--------------------
不可能有这种情况, 你需要依次把你所有的SQL语句全部打印出来,然后打印出来的语句 去数据库查 肯定不一样
------解决方案--------------------
首先确定程序执行的sql语句和在直接数据库查询的sql语句相同,
还有就是对数据库上操作的inser,update,delete进行commit,
还不可以的话,你就得确定你的程序在执行过程中是否只执行到了select操作,过程中有可能还执行到了更新数据库的操作,感觉可能性也不太大,查查看吧!
------解决方案--------------------
有这么怪的事
------解决方案--------------------
最有可能的就是事务里,数据发生了变更。
最快,最有效的判断方法就是debug ,进到查询数据库的部分,看中间结果是如何的
------解决方案--------------------
慢慢找原因,不可能出现出现这么离谱的事
------解决方案--------------------
肯定是程序里面的问题,按楼主说的是不可能发生的
------解决方案--------------------
嗯,代码出错几率最大。