VO和DAO,如何设计类和执行查询

VO and DAO, How to design classes and execute query

我有一个 3 tables:

Item: item_id (pk), short_description, ...
SupplierItem: item_id (fk), supplier_id (fk), vendor_product_number, ...
Supplier: item_supplier (pk), name, ...

项目和供应商之间的关系是多对多的。供应商项目是 中间 table.
我想使用 VO 和 DAO。

如何在 VO 中设计这个 (Java)?

之后,如何在 java 代码中执行以下查询。

select i.item_id, i.short_description, s.vendor_product_number as FONUA_PRODUCT_CODE 
from item i 
left join supplier_item s
on i.item_id=s.item_id
where ((i.item_id=:item_id) OR :item_id IS NULL)
and i.parent_item_id is null
order by vendor_product_number DESC"

在使用VO和DAO的概念上还是不明白

谢谢

DAO 是 java 文件,您可以在其中定义查询并获取数据库查询调用的结果。 查询结果将通过将它们设置为特定 VO 属性的值来保存。

例如:

您的查询 returns ,

  • item_id、short_description、vendor_product_number

因此,假设您必须创建另一个 java 文件,例如 ItemVO.java 并声明 ItemVO 对象的特定属性, 例如:

private String itemId;
private String shortDescription;
private String vendorShortNum;
/*Define your getters and setters*/

在 DAO 文件中,您必须将查询结果映射到 VO 文件的对象。

ItemVO itemVO= new ItemVO();
itemVO.setItemId(/*the particular column value from the query result*/);
itemVO.setShortDescription(/*the particular column value from the query result*/);
itemVO.setVendorShortNum(/*the particular column value from the query result*/);