簡體   English   中英

如何使用Java中的下一步按鈕從文本字段中的數據庫移動數據

[英]How to move data from database in textfield using next button in java

這是下一個按鈕的代碼

private void jButton7ActionPerformed(java.awt.event.ActionEvent evt) 
   {   

    Connection con=null;
    PreparedStatement ps=null;
    ResultSet rs=null;

    try{
         Class.forName("org.apache.derby.jdbc.ClientDriver");
         String srt="jdbc:derby://localhost:1527/silicon";
         con=DriverManager.getConnection(srt,"rock","brock");
         ps=con.prepareStatement("select * from stu where id="+jTextField1.gettext(),
         ResultSet.TYPE_SCROLL_INSENSITIVE,
         ResultSet.CONCUR_UPDATABLE);
         rs=ps.executeQuery();


   if(rs.next()) {
        jTextField1.setText(String.valueOf(rs.getInt("id")));
        jTextField2.setText(rs.getString("nam"));
        jTextField3.setText(rs.getString("qu"));
        jTextField4.setText(String.valueOf(rs.getInt("pr")));
        jTextField5.setText(String.valueOf(rs.getInt("mob")));
        jTextField6.setText(String.valueOf(rs.getInt("ad")));  
   }     
else
{
   JOptionPane.showMessageDialog(new studentf(), " no record record to navigate in text       field");
   }

  con.close();
     }
   catch(Exception e)
    {
        System.out.println(e.getMessage());</i>

    }

}   

如您所見,我想要這樣的編碼方式:每當我單擊“下一步”按鈕時,我都移至下一條記錄。我嘗試了大多數可用的選項,每當我在此處搜索所有主題時,這些選項都無濟於事,我無法找到我的解決方案只是想單擊“下一步”按鈕,“文本”字段上的數據更改為下一條記錄,這表明它顯示了下一條記錄。
上一個按鈕。請幫助

這段代碼似乎有很多問題,但是我將討論最明顯的問題。 如果我理解錯誤,請原諒,但是如果您每次按下按鈕都會執行當前代碼,那么每次都會得到一個新的ResultSet ,因此每次按下該按鈕時,您都會顯示第一個結果新的結果集。

您需要調用rs=ps.executeQuery(); 此方法之外的內容,這樣您就不必每次都重新定義rs 這樣,調用if(rs.next()){}將移至下一個結果,而不是每次導航至第一個結果。

使以下實例變量;

Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;

並將以下內容添加到構造函數(或類似函數)中;

Class.forName("org.apache.derby.jdbc.ClientDriver");
String srt = "jdbc:derby://localhost:1527/silicon";
con = DriverManager.getConnection(srt,"rock","brock");
ps = con.prepareStatement("select * from stu",
        ResultSet.TYPE_SCROLL_INSENSITIVE,
        ResultSet.CONCUR_UPDATABLE);
rs = ps.executeQuery();

提醒一下,您將不得不想辦法通過調用con.close();來關閉連接con.close(); 您可以在con.close() @Override protected void finalize(){}內調用con.close() ,但不能100%保證當GC清除您的對象時該方法將運行。

我希望這有幫助。

編輯:似乎您對JDBCPreparedStatement有很多疑問。 如果您需要進一步閱讀,這里是Oracle JDBCPreparedStatement教程的鏈接。 可能需要對該主題進行更全面的理解。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM