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

解决方案 »

  1.   

    这个理论上不可能也就是说,肯定是哪儿出错了,比如:数据库连接的不一样
    java中sql语句的查询条件和直接程序不一样
    ...
      

  2.   

    sql语句打印出来去执行,如果还不一样就是你数据库操作的没提交!
      

  3.   

    查询语句最好加上 按某个字段排序 例如主键
    我以前做分页的时候就出现过 向下翻页时出现重复的数据
    原因就是你对数据库的查询自己不排序的话 数据库的排序是随机的 数据量少是没什么影响
    不过你是统计数量理论上是不会有问题的,还是把SQL 打印出啦看看吧
      

  4.   

    最好的办法是把sql语句打印看看,亦或看看返回的时候有没有进行其它的操作,例如数据截取之类的
      

  5.   

    应该是程序代码问题 ,你可以把程序中的sql语句,打印出来 和数据库的sql进行一下对比
      

  6.   


    是否有数据没有commit 
      

  7.   

    不可能有这种情况, 你需要依次把你所有的SQL语句全部打印出来,然后打印出来的语句 去数据库查 肯定不一样
      

  8.   

    首先确定程序执行的sql语句和在直接数据库查询的sql语句相同,
    还有就是对数据库上操作的inser,update,delete进行commit,
    还不可以的话,你就得确定你的程序在执行过程中是否只执行到了select操作,过程中有可能还执行到了更新数据库的操作,感觉可能性也不太大,查查看吧!
      

  9.   

    最有可能的就是事务里,数据发生了变更。
    最快,最有效的判断方法就是debug ,进到查询数据库的部分,看中间结果是如何的
      

  10.   

    因为你再java中查出来的list()结果是hashmap,没有顺序,当然和直接在数据库中操作查处的结果不一样