DAO (Data access object)
OraTool fornisce un automatismo per la creazione di DAO PL/SQL per effettuare le operazioni base sulle tabelle e i Tipi:
- DAO_Select: consente di ottenere un record accedendo alla tabella per chiave
- DAO_Insert: inserisce un record in tabella
- DAO_Delete: cancella un record accedendo per chiave
- DAO_Update: aggiorna un record accedendo per chiave
- DAO_Log: consente di effettuare un trace di unrecord (dbms_output)
Come si usano i DAO
Supponiamo di avere una tabella Users in cui registriamo gli utenti di sistema ed una tabella Log_Access con cui monitoriamo gli accessi:
-- Create Table
Create Table Users
(Iduser NUMBER(38,0),
Username VARCHAR2(10),
Password VARCHAR2(10),
Pagesvisited NUMBER(38,0))
tablespace USERS
Storage (initial 64K) ;
-- Primary Key on table Users
Alter Table Users Add Constraint USERS_PK Primary Key (IDUSER);
-- Create Table
Create Table Log_Access
(Idlog NUMBER(38,0),
Iduser NUMBER(38,0),
Datetime DATE,
Page VARCHAR2(100))
tablespace USERS
Storage (initial 64K) ;
-- Primary Key on table Log_Access
Alter Table Log_Access Add Constraint LOG_ACCESS_PK Primary Key (IDLOG);
-- Foreign Key on table Log_Access
Alter Table Log_Access Add Constraint LOG_ACCESS_FK1 Foreign Key (IDUSER)
references USERS;
A questo punto supponiamo di dovere creare un script con cui aggiornare il numero di pagine visitate sulla tabella Users.
Dopo aver generato i DAO con l'apposito pulsante DAO Gen è sufficiente lanciare:
Declare
Cursor cUsers is
Select *
From Users;
Begin
For rUsers in cUsers Loop
-- Calculate the number of pages visited
Select count(*)
Into rUsers.PagesVisited
from Log_Access
where Iduser = rUsers.Iduser;
-- Update Users using Dao
Dao_update.Users (rUsers, rUsers);
-- Trace rUsers record
Dao_Log.Users (rUsers);
End Loop;
End;


