2016-01-05 31 views
0

我有一個插入並返回一個整數(插入的行的id)的方法,我想用這個ID創建一個面板,但問題是當我創建時ID是空的面板。查詢後的java集id

這是代碼..

   Integer id=null; 
       try { 
        id = db.insertProject(textField.getText(),textField_1.getText(),(String)comboBox.getSelectedItem()); 
        MyPanel p1 = new MyPanel(id,textField.getText(),textField_1.getText(),"laptop.png"); 

        pan5.revalidate(); 
        pan5.repaint(); 
        pan5.add(p1,new BoxLayout(p1, BoxLayout.X_AXIS)); 

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

這是方法insertProject

public Integer insertProject(String nome,String desc,String cat) throws SQLException{ 
Integer id = null; 
Date date = new Date(System.currentTimeMillis()); 
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); 
String s = formatter.format(date); 

String sql = "INSERT INTO progetto (name,descrizione,categoria,stato,data) VALUES ('"+nome+"','"+desc+"','"+cat+"',1,'"+s+"')"; 


try { 
    stmt = conn.createStatement(); 
    stmt.executeUpdate(sql); 

    try (ResultSet generatedKeys = stmt.getGeneratedKeys()) { 
     if (generatedKeys.next()) { 
      id = generatedKeys.getInt(1); 
     }else { 
      throw new SQLException("Creating project failed, no ID obtained."); 
     } 
    } 
} catch (SQLException e) { 
    // 
} 
stmt.close(); 
return id; 
} 

什麼建議嗎?

回答

1

你需要指定要查詢返回的自動生成鍵,試試這個:

stmt.executeUpdate(sql, Statement.RETURN_GENERATED_KEYS);