错误S1000尝试在Java应用程序中执行更多MySql查询

时间:2014-05-27 19:40:05

标签: java mysql sql jdbc database-connection

尝试在Java应用程序代码中执行多个查询时遇到问题。 我有一个在main中调用的过程,并且在“Fant”类中:

    public void XXX(){
     Connectivity con=new Connectivity(); // this class set up the data for the connection to db; if ( !con.connect() ) {
                    System.out.println("Error during connection.");
                    System.out.println( con.getError() );
                    System.exit(0);
                }
        ArrayList<User> blabla=new ArrayList<User>();
        blabla=this.getAllUsers(con);
        for (User u:blabla)
         {
           try {
                Connectivity coni=new Connectivity();//start a new connection each time that i perform a query
                Statement t;
                t = coni.getDb().createStatement();

               String query = "Select count(*) as rowcount from berebe.baraba";
               ResultSet rs = t.executeQuery(query);
               int numPrenotazioni=rs.getInt("rowcount");
                rs.close();                           //close  resultset
                t.close();                            //close statement
                coni.getDb().close();                  //close connection
                }
          }
            catch (SQLException e)
                 {

                  System.err.println("SQLState: " +
                  ((SQLException)e).getSQLState());
                  System.err.println("Error Code: " +
                  ((SQLException)e).getErrorCode());
                }
         }
            }

被调用的函数定义为:

ArrayList<User> getAllUsers(Connectivity con) {
 try{
            ArrayList<User> userArrayList=new ArrayList<User>();
            String query = "Select idUser,bubu,lala,sisi,gogo,gg  from berebe.sasasa";
            Statement t;
            t = con.getDb().createStatement();
            ResultSet rs = t.executeQuery(query);

            while (rs.next())
            {
                User utente=new User(....); //user fields got from query
                userArrayList.add(utente);
            }
              rs.close();
              t.close();
              con.disconnect(); //disconnect the connection
              return userArrayList;
            } catch (SQLException e) {

        }
        return null;

    }

主要是:

 public static void main(String[] argv) {
    ArrayList<User> users=new ArrayList<User>();
    System.out.println("-------- MySQL JDBC Connection Testing ------------");
    Fant style = new Fant();
    style.XXX();

}

执行“getAllusers”执行的查询并进入arraylist“blabla”有几个用户;问题是永远不会执行需要计数的第二个查询。 运行时给出的MYSQlState =“S1000”,SQLERROR为“0”。 可能我在连接问题上有误,但我不熟悉语句,连接,结果集。 谢谢。

1 个答案:

答案 0 :(得分:2)

在使用rs.next()方法获取结果之前,您可能忘记致电XXX(),如下所示:

ResultSet rs = t.executeQuery(query);

// call rs.next() first here
int numPrenotazioni=rs.getInt("rowcount");