2012-09-03 4 views
0

Java Swing을 사용하는 독립형 응용 프로그램에서 ResultSet을 사용하여 Excel 시트 (백엔드 데이터)를 탐색하고 있습니다. 그러나 삽입 쿼리를 실행 한 후 ResultSet을 사용하여 레코드를 다시 트래버스하려고하면 'ResultSet is closed'가 표시됩니다. 그 후 아무 작업도 수행 할 수 없습니다.
무엇이 오류입니까? 못 찾겠 어. 저에게 알려주세요. 나는 초보자입니다. 그래서 간단한 용어로 설명하십시오. 당신의 도움에 감사드립니다. 감사합니다 :)결과 집합이 Java에서 닫힌 오류

public sowui(String s) 
{ 


    try { 
     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance(); 
     con=DriverManager.getConnection("jdbc:odbc:test"); 
     Statement stmt = con.createStatement(); 
     stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
     String sql ="SELECT * FROM [Sheet1$] "; 

     rs =stmt.executeQuery(sql); 
    } catch (SQLException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 
    } catch (InstantiationException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IllegalAccessException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (ClassNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

    setTitle("MANAGEMENT OF STATEMENT OF WORKS"); 
    setLayout(null); 
    l1=new JLabel("CONTRACT REFERENCE NUMBER"); 
    t1=new JTextField(20); 


    l1.setBounds(50,100,250,50); 
    t1.setBounds(300,110,135,30); 
    t1.addKeyListener(new KeyAdapter() { 
     public void keyTyped(KeyEvent e) { 
      String input=t1.getText(); 
      Pattern p = Pattern.compile("[A-Z,a-z,&%$#@!()*^]"); 
      Matcher m = p.matcher(input); 
      if (m.find()) { 
       t1.setText(null); 
       JOptionPane.showMessageDialog(null, "Please enter only numbers"); 
      } 
     } });  
    l1m=new JLabel("*"); 
    l1m.setBounds(260,100,10,50); 
    l1m.setForeground(Color.RED); 

    l2=new JLabel("CR NUMBER"); 
    final String [] crn = {"N/A"}; 
    c6 =new JComboBox(crn); 
    c6.setEditable(true); 
    c6.addActionListener(new ActionListener() {    

     public void actionPerformed(ActionEvent e) {     
      if (e.getActionCommand().equals("comboBoxEdited")) {     
       System.out.println("Adding new player!");     
       c6.insertItemAt(c6.getSelectedItem(),0);    
      }    
     }   
    }); 

    l2.setBounds(50,150,250,50); 
    c6.setBounds(300,160,135,30); 

    l2m=new JLabel("*"); 
    l2m.setBounds(130,150,10,50); 
    l2m.setForeground(Color.RED); 

    l3=new JLabel("SOW NAME"); 
    t3=new JTextField(20); 
    t3.addKeyListener(new KeyAdapter() 
    { 
     public void keyTyped(KeyEvent e) { 
      String input=t3.getText(); 
      Pattern p = Pattern.compile("[0-9]"); 
      Matcher m = p.matcher(input); 
      if (m.find()) 
      { 
       t3.setText(null); 
       JOptionPane.showMessageDialog(null,"Enter only characters A-Z or a-z"); 

      } 
     } 
    }); 

    l3.setBounds(50,200,250,50); 
    t3.setBounds(300,210,135,30); 

    l3m=new JLabel("*"); 
    l3m.setBounds(120,200,10,50); 
    l3m.setForeground(Color.RED); 

    l4=new JLabel("PARTNER SERVICE MANAGER"); 
    t4=new JTextField(20); 
    t4.addKeyListener(new KeyAdapter() 
    { 
     public void keyTyped(KeyEvent e) { 
      String input=t4.getText(); 
      Pattern p = Pattern.compile("[0-9]"); 
      Matcher m = p.matcher(input); 
      if (m.find()) 
      { 
       t4.setText(null); 
       JOptionPane.showMessageDialog(null,"Enter only characters A-Z or a-z"); 

      } 
     } 
    }); 

    l4.setBounds(50,250,250,50); 
    t4.setBounds(300,260,135,30); 

    l4m=new JLabel("*"); 
    l4m.setBounds(230,250,10,50); 
    l4m.setForeground(Color.RED); 


    l5=new JLabel("LBG SERVICE MANAGER"); 
    t5=new JTextField(20); 
    t5.addKeyListener(new KeyAdapter() 
    { 
     public void keyTyped(KeyEvent e) { 
      String input=t5.getText(); 
      Pattern p = Pattern.compile("[0-9]"); 
      Matcher m = p.matcher(input); 
      if (m.find()) 
      { 
       t5.setText(null); 
       JOptionPane.showMessageDialog(null,"Enter only characters A-Z or a-z"); 

      } 
     } 
    }); 

    l5.setBounds(50,300,250,50); 
    t5.setBounds(300,310,135,30); 

    l5m=new JLabel("*"); 
    l5m.setBounds(200,300,10,50); 
    l5m.setForeground(Color.RED); 


    l6=new JLabel("TYPE OF CONTRACT"); 
    final String [] tct = {"SOW"}; 
    c4 =new JComboBox(tct); 
    c4.setEditable(true); 
    c4.addActionListener(new ActionListener() {    

     public void actionPerformed(ActionEvent e) {     
      if (e.getActionCommand().equals("comboBoxEdited")) {     
       System.out.println("Adding new player!");     
       c4.insertItemAt(c4.getSelectedItem(),0);    
      }    
     }   
    }); 

    l6.setBounds(50,350,250,50); 
    c4.setBounds(300,360,135,30); 

    l6m=new JLabel("*"); 
    l6m.setBounds(180,350,10,50); 
    l6m.setForeground(Color.RED); 

    l7=new JLabel("VALUE OF CONTRACT"); 
    t7=new JTextField(20); 
    t7.addKeyListener(new KeyAdapter() { 
     public void keyTyped(KeyEvent e) { 
      String input=t7.getText(); 
      Pattern p = Pattern.compile("[A-Z,a-z,&%$#@!()*^]"); 
      Matcher m = p.matcher(input); 
      if (m.find()) { 
       t7.setText(null); 
       JOptionPane.showMessageDialog(null, "Please enter only numbers"); 
      } 
     } });     
    l7.setBounds(50,400,250,50); 
    t7.setBounds(300,410,135,30); 

    l7m=new JLabel("*"); 
    l7m.setBounds(190,400,10,50); 
    l7m.setForeground(Color.RED); 

    l8=new JLabel("REMARKS"); 
    t8=new TextArea(15,40); 
    l8.setBounds(50,450,250,50); 
    t8.setBounds(300,460,200,80); 

    l9=new JLabel("WORK STATUS"); 
    final String [] workstatus = {"Live","Pipeline","Working at Risk"}; 
    c1 =new JComboBox(workstatus); 
    c1.setEditable(true); 
    c1.addActionListener(new ActionListener() {    

     public void actionPerformed(ActionEvent e) {     
      if (e.getActionCommand().equals("comboBoxEdited")) {     
       System.out.println("Adding new player!");     
       c1.insertItemAt(c1.getSelectedItem(),0);    
      }    
     }   
    }); 

    l9.setBounds(500,100,250,50); 
    c1.setBounds(750,110,135,30); 

    l9m=new JLabel("*"); 
    l9m.setBounds(600,100,10,50); 
    l9m.setForeground(Color.RED); 

    l10=new JLabel("CONTRACT APPROVAL"); 
    final String [] cal = {"Fully signed off","WithPlatform","with partner for signoff"}; 
    c2 =new JComboBox(cal); 
    c2.setEditable(true); 
    c2.addActionListener(new ActionListener() {    

     public void actionPerformed(ActionEvent e) {     
      if (e.getActionCommand().equals("comboBoxEdited")) {     
       System.out.println("Adding new player!");     
       c2.insertItemAt(c2.getSelectedItem(),0);    
      }    
     }   
    }); 
    l10.setBounds(500,150,250,50); 
    c2.setBounds(750,160,135,30); 

    l10m=new JLabel("*"); 
    l10m.setBounds(640,150,10,50); 
    l10m.setForeground(Color.RED); 


    l11=new JLabel("PLATFORM"); 
    final String [] PF = {"ADM-WPM","ADM-ALIS","ADM-SWeC","ADM-PAS","ADM-BSM","ADM-RAS","ADM-LP&I"}; 
    c5 =new JComboBox(PF); 
    c5.setEditable(true); 
    c5.addActionListener(new ActionListener() {    

     public void actionPerformed(ActionEvent e) {     
      if (e.getActionCommand().equals("comboBoxEdited")) {     
       System.out.println("Adding new player!");     
       c5.insertItemAt(c5.getSelectedItem(),0);    
      }    
     }   
    }); 
    l11.setBounds(500,200,250,50); 
    c5.setBounds(750,210,135,30); 

    l11m=new JLabel("*"); 
    l11m.setBounds(570,200,10,50); 
    l11m.setForeground(Color.RED); 


    l12=new JLabel("COMMERCIAL MODEL"); 
    final String [] cml = {"T&M","FP","PSA"}; 
    c3 =new JComboBox(cml); 
    c3.setEditable(true); 
    c3.addActionListener(new ActionListener() {    

     public void actionPerformed(ActionEvent e) {     
      if (e.getActionCommand().equals("comboBoxEdited")) {     
       System.out.println("Adding new player!");     
       c3.insertItemAt(c3.getSelectedItem(),0);    
      }    
     }   
    }); 
    l12.setBounds(500,250,250,50); 
    c3.setBounds(750,260,135,30); 

    l12m=new JLabel("*"); 
    l12m.setBounds(630,250,10,50); 
    l12m.setForeground(Color.RED); 

    l13=new JLabel("START DATE"); 
    t13=new JTextField(20); 
    l13.setBounds(500,300,250,50); 
    t13.setBounds(750,310,135,30); 
    t13.setEditable(false); 

    l13m=new JLabel("*"); 
    l13m.setBounds(580,300,10,50); 
    l13m.setForeground(Color.RED); 



    l14=new JLabel("END DATE"); 
    t14=new JTextField(20); 
    l14.setBounds(500,350,250,50); 
    t14.setBounds(750,360,135,30); 
    t14.setEditable(false); 

    l14m=new JLabel("*"); 
    l14m.setBounds(570,350,10,50); 
    l14m.setForeground(Color.RED); 


    l15=new JLabel("CUMULATIVE VALUE OF CONTRACT"); 
    t15=new JTextField(20); 
    t15.addKeyListener(new KeyAdapter() { 
     public void keyTyped(KeyEvent e) { 
      String input=t15.getText(); 
      Pattern p = Pattern.compile("[A-Z,a-z,&%$#@!()*^]"); 
      Matcher m = p.matcher(input); 
      if (m.find()) { 
       t15.setText(null); 
       JOptionPane.showMessageDialog(null, "Please enter only numbers"); 
      } 
     }});  

    l15.setBounds(500,400,250,50); 
    t15.setBounds(750,410,135,30); 

    l15m=new JLabel("*"); 
    l15m.setBounds(710,400,10,50); 
    l15m.setForeground(Color.RED); 

    l16=new JLabel("SOW TRACKER"); 
    l16.setBounds(400,50,250,50); 
    l16.setFont(new Font("TIMES NEW ROMAN", Font.BOLD, 28)); 


    firstb=new JButton("FIRST"); 
    firstb.setBounds(200,600,100,40); 

    prev=new JButton("PREVIOUS"); 
    prev.setBounds(400,600,100,40); 

    nextb=new JButton("NEXT"); 
    nextb.setBounds(600,600,100,40); 

    lastb=new JButton("LAST"); 
    lastb.setBounds(800,600,100,40); 

    newb=new JButton("NEW"); 
    newb.setBounds(200,650,100,40); 

    save=new JButton("SAVE"); 
    save.setBounds(400,650,100,40); 

    exitb = new JButton("EXIT"); 
    exitb.setBounds(600, 650,100,40); 

    searchb=new JButton("SEARCH"); 
    searchb.setBounds(800,650,100,40); 

    b9=new JButton(".."); 
    b9.setBounds(900,315,20,20); 

    b10=new JButton(".."); 
    b10.setBounds(900,365,20,20); 



    add(l1); 
    add(t1); 
    add(l1m); 

    add(l2); 
    add(c6); 
    add(l2m); 

    add(l3); 
    add(t3); 
    add(l3m); 

    add(l4); 
    add(t4); 
    add(l4m); 

    add(l5); 
    add(t5); 
    add(l5m); 

    add(l6); 
    add(c4); 
    add(l6m); 

    add(l7); 
    add(t7); 
    add(l7m); 

    add(l8); 
    add(t8); 

    add(l9); 
    add(c1); 
    add(l9m); 


    add(l10); 
    add(c2); 
    add(l10m); 

    add(l11); 
    add(c5); 
    add(l11m); 

    add(l12); 
    add(c3); 
    add(l12m); 

    add(l13); 
    add(t13); 
    add(l13m); 

    add(l14); 
    add(t14); 
    add(l14m); 

    add(l15); 
    add(t15); 
    add(l15m); 

    add(l16); 


    add(firstb); 
    firstb.addActionListener(this); 

    add(prev); 
    prev.addActionListener(this); 

    add(nextb); 
    nextb.addActionListener(this); 

    add(lastb); 
    lastb.addActionListener(this); 

    add(newb); 
    newb.addActionListener(this); 

    add(save); 
    save.addActionListener(this); 

    add(exitb); 
    exitb.addActionListener(new ActionListener(){ 
     public void actionPerformed(ActionEvent e) 
     { 
      System.exit(0); 
     } 
    }); 

    add(searchb); 
    searchb.addActionListener(this); 

    add(b9); 
    b9.addActionListener(this); 

    add(b10); 
    b10.addActionListener(this); 









    setSize(1000,1000); 
    setVisible(true); 
    setResizable(false); 


} 








public void actionPerformed(ActionEvent ae) 
{ 

    if(ae.getSource()==save) 
    { 


     if(t1.getText().length()==0) { try{ 

      JOptionPane.showMessageDialog(null, "Enter CONTRACT REFERENCE NUMBER"); }catch(Exception e){ 

       JOptionPane.showMessageDialog(null, "JTextField is " + t1.getText()); }} 


     /*else if(t2.getText().length()==0) { try{ 

JOptionPane.showMessageDialog(null, "Enter CR NUMBER"); }catch(Exception e){ 

     JOptionPane.showMessageDialog(null, "JTextField is " + t2.getText()); }}*/ 

     else if(t3.getText().length()==0) { try{ 

      JOptionPane.showMessageDialog(null, "enter text in JTextField-SOW NAME"); }catch(Exception e){ 

       JOptionPane.showMessageDialog(null, "JTextField is " + t3.getText()); }} 

     else if(t4.getText().length()==0) { try{ 

      JOptionPane.showMessageDialog(null, "enter text in JTextField-PARTNER SERVICE MANAGER"); }catch(Exception e){ 

       JOptionPane.showMessageDialog(null, "JTextField is " + t4.getText()); }} 

     else if(t5.getText().length()==0) { try{ 

      JOptionPane.showMessageDialog(null, "enter text in JTextField-LBG SERVICE MANAGER"); }catch(Exception e){ 

       JOptionPane.showMessageDialog(null, "JTextField is " + t5.getText()); }} 

     else if(t7.getText().length()==0) { try{ 

      JOptionPane.showMessageDialog(null, "Enter VALUE OF CONTRACT"); }catch(Exception e){ 

       JOptionPane.showMessageDialog(null, "JTextField is " + t7.getText()); }} 

     /*else if(t11.getText().length()==0) { try{ 

JOptionPane.showMessageDialog(null, "enter text in JTextField-PLATFORM"); }catch(Exception e){ 

     JOptionPane.showMessageDialog(null, "JTextField is " + t11.getText()); }} 

else if(t12.getText().length()==0) { try{ 

JOptionPane.showMessageDialog(null, "enter text in JTextField-COMMERCIAL MODEL"); }catch(Exception e){ 

     JOptionPane.showMessageDialog(null, "JTextField is " + t12.getText()); }}*/ 

     else if(t13.getText().length()==0) { try{ 

      JOptionPane.showMessageDialog(null, "Enter START DATE"); }catch(Exception e){ 

       JOptionPane.showMessageDialog(null, "JTextField is " + t13.getText()); }} 

     else if(t14.getText().length()==0) { try{ 

      JOptionPane.showMessageDialog(null, "Enter END DATE"); }catch(Exception e){ 

       JOptionPane.showMessageDialog(null, "JTextField is " + t14.getText()); }} 

     else if(t15.getText().length()==0) { try{ 

      JOptionPane.showMessageDialog(null, "Enter-CUMULATIVE VALUE OF CONTRACT"); }catch(Exception e){ 

       JOptionPane.showMessageDialog(null, "JTextField is " + t15.getText()); }} 


     String str1=t13.getText(); 
     String str2=t14.getText(); 
     SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy"); 

     Date date1 = null; 
     try { 
      date1 = (Date) df.parse(str1); 
     } catch (ParseException e) { 

     } 

     Date date2 = null; 
     try { 
      date2 = (Date) df.parse(str2); 
     } catch (ParseException e) { 

     } 

     if (date1.after(date2)) try{ 
      JOptionPane.showMessageDialog(null, "Start Date must be earlier than the end date"); 


     }catch(Exception e){} 

     if(ae.getSource()==save) 
     { 
      try 
      { 

       String value1=t1.getText(); 

       String value2=(String)c6.getSelectedItem(); 

       String value3=t3.getText(); 

       String value4=t4.getText(); 

       String value5=t5.getText(); 

       String value6 = (String) c4.getSelectedItem(); 

       String value7=t7.getText(); 

       String value8=t8.getText(); 

       String value9 = (String) c1.getSelectedItem(); 

       String value10 = (String) c2.getSelectedItem(); 

       String value11 = (String) c5.getSelectedItem(); 

       String value12 = (String) c3.getSelectedItem(); 

       String value13=t13.getText(); 

       String value14=t14.getText(); 

       String value15=t15.getText(); 


       Statement st=con.createStatement(); 
       System.out.println(value1); 
       // String q = "insert into [sheet1$] (CRN,CR_NUM,SOW_N,PSM,LBG,T_CONTRACT,V_CONTRACT,REMARKS,STATUS,APPROVAL,PLATFORM,MODEL,START_D,END_D,CUM_VALUE) values ('12345','"+value2+"','"+value3+"','"+value4+"','"+value5+"','"+value6+"','"+value7+"','"+value8+"','"+value9+"','"+value10+"','"+value11+"','"+value12+"','"+value13+"','"+value14+"','"+value15+"')"; 
       String q = "insert into [sheet1$] values ('"+value1+"','"+value2+"','"+value3+"','"+value4+"','"+value5+"','"+value6+"','"+value7+"','"+value8+"','"+value9+"','"+value10+"','"+value11+"','"+value12+"','"+value13+"','"+value14+"','"+value15+"')"; 
       int ds = st.executeUpdate(q); 

       System.out.println("Inserted Sucessfully...!!!"); 
       System.out.println(ds); 




      }catch(Exception e) 
      { 
       System.out.println(e.getMessage()); 
      } 

      finally{ 
       try { 
        con.close(); 
       } catch (SQLException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
      } 
     } 

    } 
    else if(ae.getSource()==newb) 
    { 
     try{ 

      t1.setText(null); 
      c6.addItem(null); 
      t3.setText(null); 
      t4.setText(null); 
      t5.setText(null); 
      c4.addItem(null); 
      t7.setText(null); 
      t8.setText(null); 
      c1.addItem(null); 
      c2.addItem(null); 
      c5.addItem(null); 
      c3.addItem(null); 
      t13.setText(null); 
      t14.setText(null); 
      t15.setText(null); 

     }catch(Exception e){} 

    } 
    else if(ae.getSource()==firstb) 
    { 
     try { 
      rs.first(); 
      int id_col = rs.getInt("CRN"); 

      String id = Integer.toString(id_col); 
      //int id_col1 = rs.getInt("CR_NUM"); 
      //String cr= Integer.toString(id_col1); 
      String cr =rs.getString("CR_NUM"); 
      String sow = rs.getString("SOW_N"); 
      String psm = rs.getString("PSM"); 
      String lbg = rs.getString("LBG"); 
      String toc = rs.getString("T_CONTRACT"); 
      String rm = rs.getString("REMARKS"); 

      String wks = rs.getString("WORK_ST"); 

      String cap = rs.getString("APPROVAL"); 
      String pfm = rs.getString("PLATFORM"); 
      String cmm = rs.getString("MODEL"); 

      String std = rs.getString("START_D"); 
      String etd= rs.getString("END_D"); 

      int id_col2 = rs.getInt("V_CONTRACT"); 
      String voc= Integer.toString(id_col2); 


      int id_col3 = rs.getInt("CUM_VALUE"); 
      String cvc = Integer.toString(id_col3); 
      t1.setText(id); 
      //c6.addItem(cr); 
      t3.setText(sow); 
      t4.setText(psm); 
      t5.setText(lbg); 
      //c4.addItem(toc); 
      t7.setText(voc); 
      t8.setText(rm); 
      c1.setSelectedItem(wks); 
      c2.setSelectedItem(cap); 
      c5.setSelectedItem(pfm); 
      c3.setSelectedItem(cmm); 
      c4.setSelectedItem(toc); 
      c6.setSelectedItem(cr); 



      //c1.addItem(wks); 
      //c2.addItem(cap); 
      //c5.addItem(pfm); 
      //c3.addItem(cmm); 
      t13.setText(std); 
      t14.setText(etd); 
      t15.setText(cvc); 

      System.out.println(wks); 


     } 
     catch (SQLException err) { 
      JOptionPane.showMessageDialog(sowui.this, err.getMessage()); 
     } 
     try{ 
     stmt.close(); 
     }catch(SQLException a) {} 
    } 

    else if(ae.getSource()==nextb) 
    { 
     try { 
      if (rs.next()) { 
       int id_col = rs.getInt("CRN"); 

       String id = Integer.toString(id_col); 
       //int id_col1 = rs.getInt("CR_NUM"); 
       //String cr= Integer.toString(id_col1); 
       String cr =rs.getString("CR_NUM"); 
       String sow = rs.getString("SOW_N"); 
       String psm = rs.getString("PSM"); 
       String lbg = rs.getString("LBG"); 
       String toc = rs.getString("T_CONTRACT"); 
       String rm = rs.getString("REMARKS"); 

       String wks = rs.getString("WORK_ST"); 

       String cap = rs.getString("APPROVAL"); 
       String pfm = rs.getString("PLATFORM"); 
       String cmm = rs.getString("MODEL"); 

       String std = rs.getString("START_D"); 
       String etd= rs.getString("END_D"); 

       int id_col2 = rs.getInt("V_CONTRACT"); 
       String voc= Integer.toString(id_col2); 


       int id_col3 = rs.getInt("CUM_VALUE"); 
       String cvc = Integer.toString(id_col3); 
       t1.setText(id); 
       //c6.addItem(cr); 
       t3.setText(sow); 
       t4.setText(psm); 
       t5.setText(lbg); 
       //c4.addItem(toc); 
       t7.setText(voc); 
       t8.setText(rm); 
       //c1.addItem(wks); 
       //c2.addItem(cap); 
       //c5.addItem(pfm); 
       //c3.addItem(cmm); 
       c1.setSelectedItem(wks); 
       c2.setSelectedItem(cap); 
       c5.setSelectedItem(pfm); 
       c3.setSelectedItem(cmm); 
       c4.setSelectedItem(toc); 
       c6.setSelectedItem(cr); 
       t13.setText(std); 
       t14.setText(etd); 
       t15.setText(cvc); 

      } 

      else { 
       rs.previous(); 
       JOptionPane.showMessageDialog(sowui.this, "End of File"); 
      } 
     } 
     catch (SQLException err) { 
      JOptionPane.showMessageDialog(sowui.this, err.getMessage()); 
     }try{ 
     stmt.close(); 
     }catch(SQLException a) {} 
    } 
    else if(ae.getSource()==prev) 
    { 
     try { 
      if (rs.previous()) { 
       int id_col = rs.getInt("CRN"); 

       String id = Integer.toString(id_col); 
       //int id_col1 = rs.getInt("CR_NUM"); 
       //String cr= Integer.toString(id_col1); 
       String cr =rs.getString("CR_NUM"); 
       String sow = rs.getString("SOW_N"); 
       String psm = rs.getString("PSM"); 
       String lbg = rs.getString("LBG"); 
       String toc = rs.getString("T_CONTRACT"); 
       String rm = rs.getString("REMARKS"); 

       String wks = rs.getString("WORK_ST"); 

       String cap = rs.getString("APPROVAL"); 
       String pfm = rs.getString("PLATFORM"); 
       String cmm = rs.getString("MODEL"); 

       String std = rs.getString("START_D"); 
       String etd= rs.getString("END_D"); 

       int id_col2 = rs.getInt("V_CONTRACT"); 
       String voc= Integer.toString(id_col2); 


       int id_col3 = rs.getInt("CUM_VALUE"); 
       String cvc = Integer.toString(id_col3); 
       t1.setText(id); 
       //c6.addItem(cr); 
       t3.setText(sow); 
       t4.setText(psm); 
       t5.setText(lbg); 
       //c4.addItem(toc); 
       t7.setText(voc); 
       t8.setText(rm); 
       //c1.addItem(wks); 
       //c2.addItem(cap); 
       //c5.addItem(pfm); 
       //c3.addItem(cmm); 
       c1.setSelectedItem(wks); 
       c2.setSelectedItem(cap); 
       c5.setSelectedItem(pfm); 
       c3.setSelectedItem(cmm); 
       c4.setSelectedItem(toc); 
       c6.setSelectedItem(cr); 
       t13.setText(std); 
       t14.setText(etd); 
       t15.setText(cvc); 

      } 

      else { 
       rs.next(); 
       JOptionPane.showMessageDialog(sowui.this, "Top of File"); 
      } 
     } 
     catch (SQLException err) { 
      JOptionPane.showMessageDialog(sowui.this, err.getMessage()); 
     }try{ 
     stmt.close(); 
     }catch(SQLException a) {} 
    } 
    if(ae.getSource()==lastb) 
    { 
     try { 
      rs.last(); 
      int id_col = rs.getInt("CRN"); 

      String id = Integer.toString(id_col); 
      //int id_col1 = rs.getInt("CR_NUM"); 
      //String cr= Integer.toString(id_col1); 
      String cr =rs.getString("CR_NUM"); 
      String sow = rs.getString("SOW_N"); 
      String psm = rs.getString("PSM"); 
      String lbg = rs.getString("LBG"); 
      String toc = rs.getString("T_CONTRACT"); 
      String rm = rs.getString("REMARKS"); 

      String wks = rs.getString("WORK_ST"); 

      String cap = rs.getString("APPROVAL"); 
      String pfm = rs.getString("PLATFORM"); 
      String cmm = rs.getString("MODEL"); 

      String std = rs.getString("START_D"); 
      String etd= rs.getString("END_D"); 

      int id_col2 = rs.getInt("V_CONTRACT"); 
      String voc= Integer.toString(id_col2); 


      int id_col3 = rs.getInt("CUM_VALUE"); 
      String cvc = Integer.toString(id_col3); 
      t1.setText(id); 
      //c6.addItem(cr); 
      t3.setText(sow); 
      t4.setText(psm); 
      t5.setText(lbg); 
      //c4.addItem(toc); 
      t7.setText(voc); 
      t8.setText(rm); 
      //c1.addItem(wks); 
      //c2.addItem(cap); 
      //c5.addItem(pfm); 
      //c3.addItem(cmm); 
      c1.setSelectedItem(wks); 
      c2.setSelectedItem(cap); 
      c5.setSelectedItem(pfm); 
      c3.setSelectedItem(cmm); 
      c4.setSelectedItem(toc); 
      c6.setSelectedItem(cr); 
      t13.setText(std); 
      t14.setText(etd); 
      t15.setText(cvc); 



     } 
     catch (SQLException err) { 
      JOptionPane.showMessageDialog(sowui.this, err.getMessage()); 
     }try{ 
     stmt.close(); 
     }catch(SQLException a) {} 
    } 
+4

나는이 거대한 신의 계급으로 너와 우리에게 너무 어렵다고 생각한다. 맨 먼저,이 괴물을 리팩토링하고 적어도 GUI 코드에서 데이터베이스 코드를 분리하는 것을 고려하십시오. 이렇게하면 디버깅이 훨씬 쉬워지고 문제가 발생했는지 이해할 수 있습니다. 또한 문제는 Swing과 관련이 없으며 데이터베이스 코딩 작업과 관련이 있습니다. 따라서 Swing 코드는 우리를 혼란스럽게하고 혼란을 야기 할뿐입니다. –

+0

코드가 무서워! Pls 그것을 읽을 수 있도록 업데이 트하십시오. –

+0

실제로 오류가 발생한 코드를 게시하십시오. –

답변

2

결과 집합은 귀하의 성명 및 귀하의 연결에 바인딩됩니다. 데이터베이스에 대한 연결이 열린 상태에서 ResultSet의 내용을 읽은 다음 결과 집합, 문을 닫은 다음 연결을 닫아야합니다.

결과를 UI로 읽지 않아도됩니다. 내부 모음으로도 읽을 수 있으며, 나중에 UI를 업데이트 할 수 있습니다. 언급 된 객체에 대한 참조가 여전히있는 동안 결과 세트에서 꺼내십시오. 이미 코멘트에 설정되어있는 것을 옆에

+0

어떻게해야합니까 ?? 죄송합니다 코딩에 대해. 오류가 실제로 어디에서 발생했는지는 확실하지 않았습니다. 그래서 나는 그것을 게시했다. 다시 미안해. – user1616277

+0

@ Zaki..if 삽입 쿼리 후 연결을 닫지 않으면 파일이 업데이트되지 않습니다. ie 삽입 doesnt는 일어난다. 하지만 con.close()를 주면 삽입이 발생하지만 트래버스 할 수는 없습니다. – user1616277

+0

@ user1616277 결과 집합을 탐색하여 목록, 해시 맵 또는 유사한 것으로 삽입 한 다음 다른 메소드를 사용하도록 반환합니다. – eis

3

는 코드에 대한 다른 말은 당신이 게시 :

  • setLayout(null) 전화와 관련된 모든 통화 (setBounds 등) 제거하십시오. 대신 Learn to use Layout Managers
  • 스윙 구성 요소는 이벤트 발송 스레드에서 생성/액세스/수정되어야합니다. 이 스레드는 UI를 담당하며, 장기 실행 작업 (ResultSet 인스턴스 다루기)에 사용하면 안됩니다. KeyListener를 사용하지 말아야 대한 추가 정보 (변수가 t1t3라고 코드에서)를 JTextComponent의 입력
  • 확인을 위해 Concurrency in Swing 자습서를 참조하십시오. Use a DocumentFilter instead이거나 텍스트 필드의 경우 consider using a JFormattedTextField입니다. 예를 들어 텍스트 필드의 입력 드래그 앤 드롭은 KeyListener을 완전히 우회합니다.
  • 청취자에서 수신하는 대부분의 이벤트에는 이벤트가 발생한 소스 구성 요소를 검색 할 수있는 getSource() 메소드가 있습니다. 이렇게하면 똑같은 일을하는 여러 청취자가 있기 때문에 많은 코드 중복을 피할 수 있습니다. 서로 다른 유일한 부분은 이벤트에서 검색 할 수있는 소스 구성 요소입니다. 또 다른 옵션은 익명 클래스에서 내부 클래스로 전환하고 생성자에서 필요한 정보를 전달하는 것입니다.
  • 랜덤 코드 조각을 try{} catch (Exception e)으로 둘러싼 다음 오류 처리를 수행하지 않고 앞으로는 이상한 버그를 묻습니다. Exception을 올바르게 처리하거나 더 멀리 던지십시오.
  • catch 블록이 더 나쁩니다. 이제는 자동으로 오류를 무시하고 아무 것도 일어나지 않는 것처럼 코드가 더 진행됩니다. 프로그램이 끝나는 상태를 누가 알겠습니까?