jdbc - Java Move to next and previous records -
with code below can move last record of database , first record of database. create next() method move next record. move first record second record show error(sqlexception result set after last row. can't continue project until can move records next , previous. pleas
public void createresultset(){ try{ stmt = connect.createstatement(resultset.type_scroll_insensitive,resultset.concur_updatable); string sql = "select * oautoparts_product"; stmt.executequery(sql); rs = stmt.getresultset(); }catch(exception e){ joptionpane.showmessagedialog(null, e); } } public void first(){ createresultset(); try{ rs.first(); string add1 = rs.getnstring("product_id"); txtpartnumber.settext(add1); string add2 = rs.getnstring("product_name"); txtpartname.settext(add2); string add3 = rs.getnstring("cost"); txtprice.settext(add3); }catch(exception e){ joptionpane.showmessagedialog(null, e); } } public void next(){ createresultset(); try{ while(rs.next()){ rs.next(); string add1 = rs.getnstring("product_id"); txtpartnumber.settext(add1); string add2 = rs.getnstring("product_name"); txtpartname.settext(add2); string add3 = rs.getnstring("cost"); txtprice.settext(add3); } }catch(exception e){ joptionpane.showmessagedialog(null, e); } } public void last(){ createresultset(); try{ rs.last(); string add1 = rs.getnstring("product_id"); txtpartnumber.settext(add1); string add2 = rs.getnstring("product_name"); txtpartname.settext(add2); string add3 = rs.getnstring("cost"); txtprice.settext(add3); }catch(exception e){ joptionpane.showmessagedialog(null, e); } } /** * method called within constructor initialize form. * warning: not modify code. content of method * regenerated form editor. */ @suppresswarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="generated code"> private void initcomponents() { txtpartnumber = new javax.swing.jtextfield(); txtpartname = new javax.swing.jtextfield(); txtprice = new javax.swing.jtextfield(); btnfirst = new javax.swing.jbutton(); btnlast = new javax.swing.jbutton(); btnnext = new javax.swing.jbutton(); setdefaultcloseoperation(javax.swing.windowconstants.exit_on_close); btnfirst.settext("first"); btnfirst.addactionlistener(new java.awt.event.actionlistener() { public void actionperformed(java.awt.event.actionevent evt) { btnfirstactionperformed(evt); } }); btnlast.settext("last"); btnlast.addactionlistener(new java.awt.event.actionlistener() { public void actionperformed(java.awt.event.actionevent evt) { btnlastactionperformed(evt); } }); btnnext.settext("next"); btnnext.addactionlistener(new java.awt.event.actionlistener() { public void actionperformed(java.awt.event.actionevent evt) { btnnextactionperformed(evt); } }); javax.swing.grouplayout layout = new javax.swing.grouplayout(getcontentpane()); getcontentpane().setlayout(layout); layout.sethorizontalgroup( layout.createparallelgroup(javax.swing.grouplayout.alignment.leading) .addgroup(layout.createsequentialgroup() .addgap(144, 144, 144) .addgroup(layout.createparallelgroup(javax.swing.grouplayout.alignment.trailing) .addcomponent(btnfirst, javax.swing.grouplayout.preferred_size, 139, javax.swing.grouplayout.preferred_size) .addgroup(layout.createparallelgroup(javax.swing.grouplayout.alignment.leading) .addcomponent(txtpartnumber, javax.swing.grouplayout.preferred_size, 152, javax.swing.grouplayout.preferred_size) .addcomponent(txtpartname, javax.swing.grouplayout.preferred_size, 152, javax.swing.grouplayout.preferred_size) .addcomponent(txtprice, javax.swing.grouplayout.preferred_size, 152, javax.swing.grouplayout.preferred_size)) .addcomponent(btnnext, javax.swing.grouplayout.preferred_size, 139, javax.swing.grouplayout.preferred_size)) .addpreferredgap(javax.swing.layoutstyle.componentplacement.unrelated) .addcomponent(btnlast, javax.swing.grouplayout.preferred_size, 139, javax.swing.grouplayout.preferred_size) .addcontainergap(89, short.max_value)) ); layout.setverticalgroup( layout.createparallelgroup(javax.swing.grouplayout.alignment.leading) .addgroup(layout.createsequentialgroup() .addgap(78, 78, 78) .addcomponent(txtpartnumber, javax.swing.grouplayout.preferred_size, 53, javax.swing.grouplayout.preferred_size) .addgap(18, 18, 18) .addcomponent(txtpartname, javax.swing.grouplayout.preferred_size, 53, javax.swing.grouplayout.preferred_size) .addgap(18, 18, 18) .addcomponent(txtprice, javax.swing.grouplayout.preferred_size, 53, javax.swing.grouplayout.preferred_size) .addgap(31, 31, 31) .addgroup(layout.createparallelgroup(javax.swing.grouplayout.alignment.baseline) .addcomponent(btnfirst, javax.swing.grouplayout.preferred_size, 44, javax.swing.grouplayout.preferred_size) .addcomponent(btnlast, javax.swing.grouplayout.preferred_size, 44, javax.swing.grouplayout.preferred_size)) .addgap(31, 31, 31) .addcomponent(btnnext, javax.swing.grouplayout.preferred_size, 44, javax.swing.grouplayout.preferred_size) .addcontainergap(javax.swing.grouplayout.default_size, short.max_value)) ); pack(); }// </editor-fold> private void btnlastactionperformed(java.awt.event.actionevent evt) { last(); } private void btnfirstactionperformed(java.awt.event.actionevent evt) { first(); } private void btnnextactionperformed(java.awt.event.actionevent evt) { next(); }
try this:
private void updateform() { string add1 = rs.getnstring("product_id"); txtpartnumber.settext(add1); string add2 = rs.getnstring("product_name"); txtpartname.settext(add2); string add3 = rs.getnstring("cost"); txtprice.settext(add3); } public void first() { try { if (rs.first()) { updateform(); } } catch (exception e) { joptionpane.showmessagedialog(null, e); } } public void next() { try { if (rs.next()) { updateform(); } } catch (exception e) { joptionpane.showmessagedialog(null, e); } } public void last() { try { if (rs.last()) { updateform(); } } catch (exception e) { joptionpane.showmessagedialog(null, e); } }
and move createresultset()
in constructor of class, gets created once.
i've factored out form update in private method, gets called in first
, next
, last
method.
i have this: here createresultset() should go?
public mainform() { initcomponents(); connect = dbconnection.dbconnection(); createresultset(); } public void createresultset(){ try{ stmt = connect.createstatement(resultset.type_scroll_insensitive,resultset.concur_updatable); string sql = "select * oautoparts_product"; stmt.executequery(sql); rs = stmt.getresultset(); }catch(exception e){ joptionpane.showmessagedialog(null, e); } }
Comments
Post a Comment