普通的查询数据库
Connection conn = DriverManager.getConnection(url,userName,passwd);
Statement stmt = null;
ResultSet rs = null;
String query = "select * from senderinfor";
rs = stmt.executeQuery(query);senderinfor表里面都是一些普通的数据,其中有一个字段"RECIPIENTADDR"是用来存放手机号码的.问题:当RECIPIENTADDR字段中存储的手机号码超过5000个的时候,程序就会卡在rs = stmt.executeQuery(query)这执行不下去了。
请问为什么?有什么办法可以解决?

解决方案 »

  1.   

    我是搂主,上面的问题,数据库使用的是sql2000. 如果在数据库中运行select * from senderinfor语句查询的话,不管有多少个号码,速度是非常快,一下在就查出来了。
      

  2.   

    关注,等高手来解决!帮楼主顶!
    关注ing!
      

  3.   

    可能是query对象的限制,无法容纳5000条数据
      

  4.   

    Statement stmt = null; 
    有问题,应是
    Statement stmt = conn.createStatement(); 
      

  5.   

    Statement stmt = conn.createStatement(); 这个有,只是我没有写到这上面来。
    5000以上的时候运行,并不报错误,就卡在那里,这个现象是我通过在rs = stmt.executeQuery(query)前后打印语句观察到的。System.out.print("sql start");
    rs = stmt.executeQuery(query);
    System.out.print("sql end");屏幕上只打印出sql start 然后就没反应了。
      

  6.   

    那肯定是等待了....可能有别的程序或者东西也在查查那张表吗???还是你的SQL语句全部是什么?贴一下...
      

  7.   

    String query = "select * from senderinfor where SenderFlag =0";
    rs = stmt.executeQuery(query); 同一时间基本上数据库里面只有一个SenderFlag =0的数据 
    并没有别的程序在查这张表
      

  8.   

    Statement stmt = null; 
    ResultSet rs = null; 
    new 一下呢???
      

  9.   

    为什么不看下我的回复呢,我觉得很可能是query对象的问题