当前位置: 首页 > 知识库问答 >
问题:

不同型号的表格视图

阳宾实
2023-03-14

我试图在TableView中实现以下内容:

prod_name | prod_comment | ... | kcal | kjoule |
--------------------------------------------
name      |  hi          |     | 1.5  |   5 
name      |  hi          |     | 2.0  |   7

这些是我使用的模型:

Product (holds things like name,comment etc)
Nutrient (holds the kcal, kjoule strings etc)
Product_Nutrient (holds the amounts of kcal, kjoule etc for every product)

我目前拥有的是一个DAO(和一个单独的模型)层,它连接所有这些表,并以如上所述的格式返回它们,但对于这个项目,它不允许使用SQL连接(学校项目)。我不认为这会成为一个问题,但现在是了。

我还尝试将三个模型作为列表包装到一个模型中,但我不确定如何保持模型之间的关系,以及如何在TableView中显示它们。(与此处所示相同)

如果有什么不清楚的,请告诉我,以便我可以添加更多信息。

编辑;

为了澄清一些问题:

某些< code >产品可能不包含< code >产品营养素中的所有< code >营养素

例如:

prod_id | nutrient_id | amount |
1         1             0.0
1         2             5.1
2         1             1.4
3         1             0.2
3         2             0.0

这里<code>prod_id</code>2没有<code>nutrient_id</code>2,因为<code>0.0</code>不同于不存在。

编辑:

模型:

public class ProductModel {

      private String name;
      private int prod_code;
      ....
      //getters/setters
}

public class ProductNutrientModel {

      private double amount; // amount of the nutrient linked to a product
      private int prod_code;
      private int nutrient_id; 
      ....
      //getters/setters
}

public class NutrientModel {

      private int nutrient_id; 
      private String name; // names of the nutrients
      ....
      // Nutrient holds no amount

      //getters/setters
}

共有1个答案

刘瀚
2023-03-14

我会将类定义

public class Product {

    private int id ;

    private String name ;
    private String comment ;

    // constructor and get methods

}
public class Nutrient {

    private int id ;

    private String name ;
    private double kcal ;

    // ...
}
public class ProductNutrientContent {

    private Product product ;
    private Nutrient nutrient ;
    private double quantity ;

    // ...
}

不能使用内部联接的要求是相当人为的,但只要数据库不太大,就可以使用三个查询来获取< code>ProductNutrient对象的列表,如下所示:

Map<Integer, Product> productsById ;
Map<Integer, Nutrient> nutrientsById ;
List<ProductNutientContent> productNutrientContents ;

// query product table, for each row in the result set do:
  Product product = new Product(/* data from result set row */);
  productsById.put(product.getId(), product);

// similarly populate nutrientsById...

// query join table, for each row in join table do:
  int productId = ... ; // productId from row in result set
  int nutrientId = ... ; // nutrientId from row in result set
  double quantity = ... ; // quantity from row in result set
  ProductNutrientContent content 
      = new ProductNutrientContent(productsById.get(productId), nutrientsById.get(nutrientId), quantity);
  productNutrientContents.add(content);

现在,您可以使用列表填充表。对于表列,只需做以下显而易见的事情:

TableColumn<ProductNutrientContent, String> productNameColumn = new TableColumn<>("Product");
productNameColumn.setCellValueFactory(cellData -> 
    new SimpleStringProperty(cellData.getValue().getProduct().getName()));

TableColumn<ProductNutrientContent, Number> kcalColumn = new TableColumn<>("kcal");
kcalColumn.setCellValueFactory(cellData -> 
    new SimpleDoubleProperty(cellData.getValue().getNutrient().getKcal()));

TableColumn<ProductNutrientContent, Number> quantityColumn = new TableColumn<>("Quantity");
quantityColumn.setCellValueFactory(cellData -> 
    new SimpleDoubleProperty(cellData.getValue().getQuantity());
 类似资料:
  • 我有一个带有表视图的Xib(我使用的是Xib而不是常规的故事板,因为我将Xib插入到UIPageView控制器中)。在 Xib 的类中,我注册了一个自定义表视图单元格。尽管单元格插入到表视图中,但它不会根据其约束正确调整大小,也不会更改表视图的显示。 这是我在视图控制器中的设置代码,它具有表视图xib:类 当我运行应用程序时,它看起来像这样: 所以基本上,自定义单元格是从xib文件添加到表格视图中

  • 我希望我的swift代码在每次按下按钮时都添加一个新的tableview单元格。你可以在下面的gif中看到我想要的东西。这段代码应该在func-tableView(_tableView:UITableView,cellForRowAt-indexPath:indexPath)中添加按钮- 在此输入图像描述

  • 我现在正在使用UITableView,我所拥有的是 我的类.h @ interface my class:UIViewController { } @property (strong,strong)ui label * name; @属性(strong,strong)UILabel*add; 和 我的班级.m -(NSInteger)tableView:(UITableView*)atableVi

  • 我正在 swift 中为 iOS 编写一个应用程序,并且我有一个表格视图问题。此表的单元格内部有一个水平 stackView,其中包含三个包含不同长度文本的标签。我已经放置了所有约束,并且似乎可以自动调整单元格的高度,但我意识到了一些事情:它根据最短的限制自动调整单元格的高度。因此,它会截断较长的那个,如您在图像中看到的那样。请帮助我不知道如何解决它,我无法在线找到解决方案。 如何根据单元组件高度

  • 问题内容: 我们正在测试中针对ORACLE 10g运行一个Java /hibernate应用程序。有时,我们会看到此错误: ORA-00942:表或视图不存在 有没有办法找出ORACLE在谈论哪个表/视图? 我知道我可以在hibernate中添加更多级别的日志记录,这将显示它在ORACLE上执行的所有SQL,然后运行该SQL以确定哪个TABLE / VIEW缺少或缺少权限。但是考虑到它是在“测试/

  • 本文向大家介绍JS获取表格视图所选行号的ids过程解析,包括了JS获取表格视图所选行号的ids过程解析的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了JS获取表格视图所选行号的ids过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 实例化数组 遍历所选行push到数组中 将数组join转换为以,分割的字符串 以上就是本文的全部内