# dbItemHandler Documentation ## Overview This document describes the database relationships and interactions for the `dbItemHandler` class. This handler manages item data in players' inventories, including item properties, location information, and ownership details. ## Handler Class **File:** `src/engine/db/handlers/dbItemHandler.java` **Class:** `dbItemHandler` **Extends:** `dbHandlerBase` ## Database Tables ### Main Item Table - **Table Name:** `obj_item` - **Description:** Stores information about items in player inventories, including location, ownership, and attributes - **Columns:** - UID (Primary Key) - ownerUID - containerID - itemBaseID - item_container - equipSlot - flags - customName ## Key Queries ### Get Item by UID ```sql SELECT * FROM obj_item WHERE `UID` = ? ``` **File:** `dbItemHandler.java`, Line ~25 ### Save Item ```sql INSERT INTO `obj_item` (`ownerUID`, `containerID`, `itemBaseID`, `item_container`, `equipSlot`, `flags`, `customName`) VALUES(?,?,?,?,?,?,?) ``` **File:** `dbItemHandler.java`, Line ~40 ### Get Items by Owner ```sql SELECT * FROM obj_item WHERE `ownerUID` = ? ``` **File:** `dbItemHandler.java`, Line ~55 ## Relationships 1. **Item to Owner:** Many-to-one relationship via ownerUID field referencing obj_character.UID 2. **Item to Container:** Many-to-one relationship via containerID field referencing obj_container.UID 3. **Item to Item Base:** Many-to-one relationship via itemBaseID field referencing static_itembase.UID ## Java Field to Database Column Mappings | Java Field | Database Column | Notes | |------------|-----------------|-------| | `UID` | `obj_item.UID` | Unique identifier for the item | | `ownerUID` | `obj_item.ownerUID` | UID of the character who owns this item | | `containerID` | `obj_item.containerID` | Container ID where item is stored | | `itemBaseID` | `obj_item.itemBaseID` | UID of the base item definition | | `item_container` | `obj_item.item_container` | Container type (inventory, equip, bank, etc.) | | `equipSlot` | `obj_item.equipSlot` | Slot where item is equipped | | `flags` | `obj_item.flags` | Item flags for special properties | | `customName` | `obj_item.customName` | Custom name of the item | | `other fields...` | Various columns | Other item-specific properties |