【问题标题】:What types of fields shall I use for Long and Object values in javafxjavafx 中的 Long 和 Object 值应该使用什么类型的字段
【发布时间】:2015-05-05 09:06:04
【问题描述】:

我想将使用javafx 创建的表的值存储在数据库中。一些值是 Long 类型,而其他值是 object 类型。例如:有三个表:“Goods”、“Prices”和“TypesOfPrices”。在这种情况下,第一个有两列:“id”和“name”,第三个有两个相同的列,第二个有 3 个字段:“price”、“type_of_price”、“good”。这意味着第二个表引用了另外两个表。只要我可以使用它们的 ID,我就不需要将引用存储在数据库中。但从 GUI 用户需要能够选择“Good”或“TypeOfPrice”类型的值。所以问题是当用户添加记录时,我选择了哪种字段类型的外壳具有另一个表的记录的下拉列表。为此使用了对话框。

【问题讨论】:

    标签: java user-interface javafx h2


    【解决方案1】:

    理想情况下,要使用 JavaFX 处理数据,您应该使用 Property。通过这种方式,您将能够将数据绑定到您的界面。例如,如果您想将 String 绑定到您的 TextField :

    StringProperty myStringProperty = new SimpleStringProperty();
    myStringProperty.bind(textfield.textProperty());
    

    对于一个对象 TypeOfPrice :

        ObjectProperty<TypeOfPrice> objectProperty = new SimpleObjectProperty();
        Combobox<TypeOfPrice> typeOfPriceList = ...
      objectProperty.bind(typeOfPriceList.getSelectionModel().selectedItemProperty());
    

    在我看来,您应该只操作控制器中的属性来建立视图和数据之间的链接。

    当您想将这些数据保存在数据库中时,就会出现无聊的部分。

    在我的第一次体验中,我们使用了 H2 + JPA + Hibernate。 我们将模型分为两部分,第一个模型用 Property 编写,第二个模型用经典 java 类型(如 int、String ...模型。 它看起来像 this

    现在我们更改了所有内容,因为休眠速度太慢,无法满足我们的需求,我们现在使用 JCR 存储库作为持久层。使用 ModeshapejcromFXJcrom 的一个分支)进行映射,它工作正常,您应该看看它以替代经典 H2 DB。

    【讨论】:

      猜你喜欢
      • 2020-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多