求助!!! ResultSet结果正常,但是只要想取出来就报错或直接停止运行

169 阅读1分钟

如果我将while(rs.next){}中的add(userid,name,userAccount,password,post,i);去掉的话循环就可以遍历rs中的所有数据,但是只要我把这句添上运行但这句就直接报错或结束了

```
tableuser[] tableusers=null;
public List<tableuser> cxuser(String userid) throws InterruptedException, ExecutionException, SQLException {
        String sql="select * from user ;";
        FutureTask<tast> task=new FutureTask<>(new Callable<tast>() {
            @Override
            public tast call() throws Exception {
                tast t=new tast();
                try {
                    Thread.sleep(100);
                } catch (InterruptedException e) {
                    throw new RuntimeException(e);
                }
                try {
                    Class.forName("com.mysql.jdbc.Driver");
                } catch (ClassNotFoundException e) {
                    //throw new RuntimeException(e);
                }
                try {
                    conn= DriverManager.getConnection(url,user,password);
                    PreparedStatement statement = (PreparedStatement) conn.prepareStatement(sql);
                    ResultSet rs= statement.executeQuery();
                    int i=0;
                    
                    
                    //////////    以下是问题代码段    ////////////
                    //////////    以下是问题代码段    ////////////
                    //////////    以下是问题代码段    ////////////
                    //////////    以下是问题代码段    ////////////
                    本来想使用list创造一个tableuser的集合,但是也不行
                    
                    while (rs.next()){
                        i=i+1;
                        String name;
                        String userid;
                        String userAccount;
                        String password;
                        String post;
                        name=rs.getString("name");
                        userid=rs.getString("userid");
                        userAccount=rs.getString("userAccount");
                        password=rs.getString("password");
                        post=rs.getString("post");
                        Log.d("id",userid);
                        add(userid,name,userAccount,password,post,i);
                        Thread.sleep(20);
                    }
                    //////////    以上是问题代码段    ////////////
                    //////////    以上是问题代码段    ////////////
                    //////////    以上是问题代码段    ////////////
                    //////////    以上是问题代码段    ////////////
                    
                    
                    Log.d("程序查询以运行","成功");
                    rs.close();


                    statement.close();
                    conn.close();
                } catch (SQLException e) {
                    Log.d("conn尝试连接","失败");
                    throw new RuntimeException(e);
                }
                return t;}
        });
        Thread thread=new Thread(task);
        thread.start();
        return null;
    }
    
    ```
int he=0;
private void sum(){
    he=he+1;
}
public void add(String a,String b,String c,String d,String e,int i){
    tableuser user=new tableuser(a,b,c,d,e);
    tableusers[i]=user;
}
public void add1(int i){
    tableusers=new tableuser[i];
}