mysql - JavaFX 文本字段未使用 MYSQL 查询更新

标签 mysql javafx

所以我能够让 sql 查询运行并更新数据库中的数据,但我无法让我的文本字段通过计算进行更新。我认为这就像选择新的数据库数量并将其注入(inject)文本字段一样简单,但我有一种感觉,我未能正确地做到这一点。我可以在应用程序中加载数据库表,然后获取新结果,但我希望它自动显示。

下面的 Controller 代码

@FXML
private TextField orderBox;
@FXML
private TextField totalBox;

public void calculateOrder(ActionEvent event){

String total = totalBox.getText();
String product = productBox.getText();

String queryUpdate="UPDATE ordertable o JOIN product p ON p.productID = o.productID set o.total = o.amount * p.cost";
 String updateBox="SELECT total FROM ordertable WHERE productID = ?";
try{

    query=c.prepareStatement(queryUpdate);
    update=c.prepareStatement(updateBox);
    update.setString(1, total);
    query.execute();
    update.execute();

    //usetString(2, productID);

       query.close();
       update.close();
        rs.close();

    Alert confirmation = new Alert(Alert.AlertType.CONFIRMATION, "Calculated");

    confirmation.show();

}

 catch(SQLException e){

     System.out.println(e);
 }

FXML 类。

<AnchorPane prefHeight="420.0" prefWidth="627.0" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.OrderController">
   <children>
      <AnchorPane layoutX="14.0" layoutY="14.0" prefHeight="331.0" prefWidth="419.0">
         <children>
            <Label layoutX="164.0" layoutY="38.0" text="Order" />
            <Label layoutX="14.0" layoutY="86.0" text="orderID" />
            <Label layoutX="13.0" layoutY="128.0" text="productID" />
            <Label layoutX="3.0" layoutY="167.0" text="CustomerID" />
            <Label layoutX="28.0" layoutY="233.0" text="Date" />
            <TextField id="orderIDBox" fx:id="orderBox" layoutX="67.0" layoutY="82.0" prefHeight="25.0" prefWidth="90.0" promptText="Enter OrderID" />
            <TextField fx:id="productBox" layoutX="67.0" layoutY="124.0" prefHeight="25.0" prefWidth="90.0" />
            <TextField fx:id="customerBox" layoutX="67.0" layoutY="163.0" prefHeight="25.0" prefWidth="90.0" />
            <TextField fx:id="dateBox" layoutX="67.0" layoutY="229.0" prefHeight="25.0" prefWidth="90.0" />
          <TextField id="totalBox" fx:id="totalBox" layoutX="89.0" layoutY="330.0" prefHeight="25.0" prefWidth="90.0" />
          <TableView fx:id="orderUser" layoutX="164.0" layoutY="74.0" onMouseClicked="#showOnClick" prefHeight="248.0" prefWidth="447.0">
          <columns>
          <TableColumn fx:id="columnOrder" prefWidth="75.0" text="orderID" />
          <TableColumn fx:id="columnProduct" prefWidth="75.0" text="productID" />
            <TableColumn fx:id="columnCustomer" prefWidth="75.0" text="customerID" />
            <TableColumn fx:id="columnDate" prefWidth="75.0" text="Date" />
            <TableColumn fx:id="columnAmount" prefWidth="62.0" text="Amount" />
            <TableColumn fx:id="columnTotal" prefWidth="75.0" text="total" />
        </columns>
      </TableView>
            <Button id="loadButton" layoutX="518.0" layoutY="43.0" mnemonicParsing="false" onAction="#loadDataFromDatabase" text="Load" />
            <Button id="editButton" fx:id="editButton" layoutX="94.0" layoutY="293.0" mnemonicParsing="false" onAction="#updateOrder" text="Edit" />
            <Button id="deleteButton" fx:id="deleteButton" layoutX="15.0" layoutY="293.0" mnemonicParsing="false" onAction="#deleteOrder" text="Delete" />
            <Button id="calculateButton" fx:id="calculateButton" layoutX="20.0" layoutY="330.0" mnemonicParsing="false" onAction="#calculateOrder" text="Calculate" />
           <Label layoutX="19.0" layoutY="200.0" text="Amount" />
            <TextField fx:id="amountBox" layoutX="67.0" layoutY="196.0" prefHeight="25.0" prefWidth="90.0" />
         </children>
      </AnchorPane>
      <Button fx:id="addButton" layoutX="220.0" layoutY="363.0" mnemonicParsing="false" onAction="#AddOrder" text="Add" />
   </children>
</AnchorPane>

最佳答案

据我所知(因为我没有看到所有代码)您只是在执行查询。您不会将结果分配给任何东西。 您的更新和您的查询都可以正常工作,但由于您没有将其分配给任何内容,因此您将看不到任何更改。

尝试将查询结果分配给您的文本字段(我不知道哪个是文本字段,因为您没有说出要更新哪个文本字段,我猜是全部。)然后您将能够看到文本字段中的更新

关于mysql - JavaFX 文本字段未使用 MYSQL 查询更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43788269/

相关文章:

mysql - 相关表的sql查询

php - 多次搜索六个字段

mysql - 导入数据库时​​,学说实体的外键约束失败

PHP PDO MySQL 以及它如何真正处理 MySQL 事务?

java - 单击菜单项时如何显示 JavaFX Web View ?

Java 堆空间(java.lang.OutOfMemoryError)

mysql - 显示每个答案计数的用户 ID 计数

Java/JavaFX - 在尝试数据库连接时检查互联网连接是否存在

java - 屏幕上有图像 "wrap around"。 JavaFX

java - 如何修复场景生成器中的窗口大小?