[英]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清除您的對象時該方法將運行。
我希望這有幫助。
編輯:似乎您對JDBC
和PreparedStatement
有很多疑問。 如果您需要進一步閱讀,這里是Oracle JDBC和PreparedStatement教程的鏈接。 可能需要對該主題進行更全面的理解。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.