javafx 中的 Long 和 Object 值应该使用啥类型的字段
Posted
技术标签:
【中文标题】javafx 中的 Long 和 Object 值应该使用啥类型的字段【英文标题】: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”类型的值。所以问题是当用户添加记录时,我选择了哪种字段类型的外壳具有另一个表的记录的下拉列表。为此使用了对话框。
【问题讨论】:
【参考方案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 存储库作为持久层。使用 Modeshape 和 jcromFX(Jcrom 的一个分支)进行映射,它工作正常,您应该看看它以替代经典 H2 DB。
【讨论】:
以上是关于javafx 中的 Long 和 Object 值应该使用啥类型的字段的主要内容,如果未能解决你的问题,请参考以下文章