2016-08-21 15 views
0

編集可能な2つのTableViewを作成して、各セル内のデータを編集および変更できます。ユーザーは、各セルの周りいくつかのデータを変更した後、今、私の質問はどのように私は、このデータを保存したり、JavaFX編集可能なTableViewをSQLに保存する

INSERT INTO table_name 
VALUES (Value from table,Value from table,Value from table,...); 

//以下の例のようなSQLクエリに追加する方法でそれをプリントアウトしない、あります編集可能なセル

PriceColumn.setCellFactory(TextFieldTableCell.forTableColumn()); 
PriceColumn.setOnEditCommit(
     new EventHandler<CellEditEvent<NewCustomerList, String>>() { 
      @Override 
      public void handle(CellEditEvent<NewCustomerList, String> t) { 
       ((NewCustomerList) t.getTableView().getItems().get(
         t.getTablePosition().getRow())).setPrice(t.getNewValue()); 
      } 
     } 
); 

答えて

1

これは、必要な値を取得し、DAOクラスに渡してDBでクエリを実行することで実行できます。これは、あなたが期待していたものではない場合の例が

PriceColumn.setOnEditCommit(
     new EventHandler<CellEditEvent<NewCustomerList, String>>() { 
      @Override 
      public void handle(CellEditEvent<NewCustomerList, String> t) { 
       ((NewCustomerList) t.getTableView().getItems().get(t.getTablePosition().getRow())).setPrice(t.getNewValue()); 
       String newPrice = t.getNewValue(); 
       String uniqueIdentifier = t.getRowValue().getUniqueIdentifier(); //Unique identfier is something that uniquely identify the row. It could be the name of the object that we are pricing here. 
       daoObj.updatePrice(newPrice, uniqueIdentifier); //Call DAO now 
      } 
     } 
); 

そしてどこかDAOクラスの濃いジャングルで、

private final String updateQuery = "UPDATE <TABLE_NAME> SET <PRICE_COLUMN> = ? WHERE <UNIQUE_COLUMN> = ?"; //If you require multiple columns to get a unique row, add them in the where clause as well. 

public void updatePrice(String newPrice, String uniqueIdentifier) { 
    PreparedStatement ps = con.prepareStatement(updateQuery); //con is the connection object 
    ps.setString(1,uniqIdentifier); //if a string 
    ps.setString(2,newPrice); //if a string 
    ps.executeQuery(); 
} 

をfollows-、あなたはあなたの要件を明確にしてくださいすることができますか?

関連する問題