如何在java中滚动浏览mysql数据库

如何在java中滚动浏览mysql数据库,java,mysql,Java,Mysql,我正在尝试滚动数据库的所有内容。我如何正确地做到这一点: conc conclass = new conc(); Connection conn = conclass.dbConnect(); try{ Statement statement=conn.createStatement(); ResultSet rs; String sql; rs=statement.executeQuery("SE

我正在尝试滚动数据库的所有内容。我如何正确地做到这一点:

conc conclass = new conc();
        Connection conn = conclass.dbConnect();
        try{


       Statement statement=conn.createStatement();
        ResultSet rs;
        String sql;
        rs=statement.executeQuery("SELECT * FROM q_table");

        if(rs.next()){
        String yo=rs.getString("Question");
        jTextArea1.setText(yo);
        }





        }catch(Exception e){e.printStackTrace();}
下面是我连接数据库的课程:

 public Connection dbConnect() {
    try {
        String db_connect_string="jdbc:mysql://localhost:3306/questions";
        String db_userid="root";
        String db_password="1234";
        Class.forName("com.mysql.jdbc.Driver").newInstance();
        Connection conn = DriverManager.getConnection(db_connect_string, db_userid, db_password);


        return conn;

    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }
}
while(rs.next()) {
   String yo=rs.getString("Question");
   // add 'yo' to a list or similar...
}
我的代码有什么问题?当我单击滚动按钮时,它将加载第一条记录。但当我再次点击它时。它根本不起任何作用。

要从表中收集所有结果(我假设您指的是表而不是整个数据库):

您需要遍历
结果集
ResultSet
按顺序滚动从数据库返回的每一行。有关更多详细信息,请参阅。

从表中收集所有结果(我假设您指的是表而不是整个数据库):


您需要遍历
结果集
ResultSet
按顺序滚动从数据库返回的每一行。有关更多详细信息,请参阅。

您需要保持
结果集的打开状态。每次单击按钮,都必须调用
rs.next()
一次。之后,一个新行将复制到
ResultSet

您需要保持
ResultSet
打开。每次单击按钮,都必须调用
rs.next()
一次。之后,一个新行将复制到
ResultSet

where is scroll按钮中。顺便说一句,最有可能的DB连接已关闭。第一块代码位于jButtonActionPerformed事件内。我想问题是每次我点击按钮时连接都会被更新,这就是为什么我总是看到相同的结果。我的问题是,如果按钮事件中不应该有连接,我将把初始化连接的代码放在哪里。哪里是滚动按钮。顺便说一句,最有可能的DB连接已关闭。第一块代码位于jButtonActionPerformed事件内。我想问题是每次我点击按钮时连接都会被更新,这就是为什么我总是看到相同的结果。我的问题是,如果按钮事件中不应该出现连接,我将把初始化连接的代码放在哪里。我建议不要让ResultSet再打开一段时间。在这种情况下,您可能会侥幸逃脱,但从原则上讲,让ResultSet保持打开状态等待用户操作是错误的。开始时将数据读入内存,然后从内存中迭代数据。@Zds:Agreed;我忘了提到这一点。我建议不要让ResultSet再打开一段时间。在这种情况下,您可能会侥幸逃脱,但从原则上讲,让ResultSet保持打开状态等待用户操作是错误的。开始时将数据读入内存,然后从内存中迭代数据。@Zds:Agreed;我忘了提这个。