Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ResultSet方法previous()不起作用_Java_Jdbc - Fatal编程技术网

Java ResultSet方法previous()不起作用

Java ResultSet方法previous()不起作用,java,jdbc,Java,Jdbc,我不知道为什么,但是previous()方法不起作用,每当用户按下next按钮时,输出保持不变,不会向前移动。有人能帮忙吗?每次调用actionPerformed方法时(我假设在按下某个按钮时调用该方法),您都会再次执行查询。因此next()将始终为您提供第一个元素,而previous将返回false 您可能应该将所有行读入一些数据结构,例如ArrayList(作为初始化步骤,而不是在单击按钮时),并维护该列表的当前索引,这将允许您在单击按钮时向前或向后移动 另外,在未检查返回值的情况下,不应使

我不知道为什么,但是
previous()
方法不起作用,每当用户按下
next
按钮时,输出保持不变,不会向前移动。有人能帮忙吗?

每次调用
actionPerformed
方法时(我假设在按下某个按钮时调用该方法),您都会再次执行查询。因此
next()
将始终为您提供第一个元素,而
previous
将返回false

您可能应该将所有行读入一些数据结构,例如
ArrayList
(作为初始化步骤,而不是在单击按钮时),并维护该
列表的当前索引,这将允许您在单击按钮时向前或向后移动

另外,在未检查返回值的情况下,不应使用
rs.next()
rs.previous()
。如果这些方法返回
false
,则不应调用
rs.getInt(“id”)
等方法,因为它们将引发异常


p.p.S一些JDBC驱动程序不支持
previous()
first
last
方法,这意味着它们可能抛出
SQLFeatureNotSupportedException
。但是,如果您按照我的建议读取初始化步骤中的所有数据,则只需要
next()

每次按下按钮时,您都会创建一个新语句。谢谢您的指导:):)。我现在使用的是absolute()函数,并将行号存储在静态变量中,它起了作用。并且不支持yess previous()函数。谢谢你
   public void actionPerformed(ActionEvent E)
   {
       int id;
       String name,address,phone;
       Connection conn = null;
       PreparedStatement stmt = null;
       try {
           //STEP 2: Register JDBC driver
           Class.forName("com.mysql.jdbc.Driver");

           //STEP 3: Open a connection
           System.out.println("Connecting to database...");
           conn = DriverManager.getConnection(DB_URL,USER,PASS);

           //STEP 4: Execute a query
           String sql;
           sql = "SELECT * FROM person";
           System.out.println("Creating statement...");
           stmt = conn.prepareStatement (sql,ResultSet.TYPE_SCROLL_INSENSITIVE , 
                                     ResultSet.CONCUR_UPDATABLE );


            ResultSet rs = stmt.executeQuery(sql);

            if(E.getSource()== bNext) {
                rs.next();
                id  = rs.getInt("id");
                name = rs.getString("name");
                address = rs.getString("address");
                phone = rs.getString("phone");

                //Display values
                System.out.print("ID: " + id);
                System.out.print(", Name: " + name);
                System.out.print(", Address: " + address);
                System.out.println(", Phone: " + phone);
            }
            if(E.getSource()== bPrevious) {
                rs.previous();
                id  = rs.getInt("id");
                name = rs.getString("name");
                address = rs.getString("address");
                phone = rs.getString("phone");

                //Display values
                System.out.print("ID: " + id);
                System.out.print(", Name: " + name);
                System.out.print(", Address: " + address);
                System.out.println(", Phone: " + phone);
            }
            if(E.getSource()==bLast) {
                rs.last();
                id  = rs.getInt("id");
                name = rs.getString("name");
                address = rs.getString("address");
                phone = rs.getString("phone");

               //Display values
               System.out.print("ID: " + id);
               System.out.print(", Name: " + name);
               System.out.print(", Address: " + address);
               System.out.println(", Phone: " + phone);
           }
           if(E.getSource()==bFirst) {
               rs.first();
               id  = rs.getInt("id");
               name = rs.getString("name");
               address = rs.getString("address");
               phone = rs.getString("phone");

               //Display values
               System.out.print("ID: " + id);
               System.out.print(", Name: " + name);
               System.out.print(", Address: " + address);
               System.out.println(", Phone: " + phone);
          }
          //STEP 6: Clean-up environment
          rs.close();
          stmt.close();
          conn.close();
    }