VO и DAO, как проектировать классы и выполнять запрос

У меня есть 3 таблицы:

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

Отношение между деталью и поставщиком много к много. SupplierItem
промежуточная таблица.


Я хочу использовать во и Дао.

Как спроектировать это в 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.

Спасибо

1 ответ

  1. DAO был бы файлом java, где вы определяете ваш запрос и получаете результаты вызова запроса на базе данных.
    Результаты запроса будут сохранены путем установки их в качестве значений для свойств конкретного VO.

    например:

    Ваш запрос возвращает ,

    • item_id, short_description, vendor_product_number

    Итак, скажем, что вам придется создать другой файл java, скажем ItemVO.java и объявить определенные свойства объекта ItemVO,
    Для Ex:

    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*/);