This is an old revision of the document!
Bookstore din pachetul ro.cs.pub.aipi.main, denumita exerciseX, unde X reprezinta numarul exercitiului.
Se doreşte proiectarea unei aplicaţii care exploatează o bază de date ce urmează să fie integrată în cadrul unui sistem ERP pentru o librărie care comercializează doar cărţi. Se va porni de la schema conceptuală, respectiv de la structura bazei de date construite în cadrul laboratorului anterior.
Laborator2l.sql unde se crează structura şi diferite obiecte ale bazei de date libarie.Constants din pachetul ro.pub.cs.aipi.general, să se modifice valoarea constantei DATABASE_PASSWORD cu cea corespunzătoare sistemului de gestiune pentru baze de date instalat pe maşina proprie.DataBaseWrapperImplementation din pachetul ro.pub.cs.aipi.dataaccess, să se implementeze metoda getTableNumberOfRows() care determină numărul de înregistrări al unei tabele identificata prin nume (primit ca parametru). public int getTableNumberOfRows(String tableName) throws SQLException;
getTableContent(), să se creeaze un fişier books.txt in directorul output care sa contina lista tuturor cărţilor disponibile în librărie (existente pe stoc).* * *), titlul, editura precum şi anul apariţiei, separate prin TAB.user o înregistrare ale cărei atribute sunt introduse de la tastatură.Scanner scanner = new Scanner(System.in); value = scanner.nextLine(); // ... scanner.close();
updateRecordsIntoTable(), să se modifice toate comenzile de aprovizionare către editura Harlequin(id = 50, registered_number = 510636670) astfel încât cantităţile să fie crescute cu 20%.DataBaseWrapperImpl din pachetul ro.pub.cs.aipi.dataaccess, să se implementeze metoda deleteRecordsFromTable() care elimină dintr-o tabelă identificată prin nume (primit ca parametru) acele înregistrări care au anumite valori corespunzătoare unor atribute sau care respectă o anumită condiţie. public void deleteRecordsFromTable(String tableName, ArrayList<String> attributes, ArrayList<String> values, String whereClause) throws SQLException, DataBaseException
Dacă attributes = (attribute1, …, attributen), respectiv values = (value1, …, valuen), atunci vor fi şterse înregistrările pentru care attribute1=value1 AND … AND attributen=valuen sau pentru care este îndeplinită condiţia whereClause. În cazul în care sunt precizate attributes / values, parametrul whereClause va fi ignorat.
Folosind metoda deleteRecordsFromTable() astfel implementată să se şteargă acele edituri care nu au cărţi comercializate de librarie.
calculate_user_total_invoice_value să se determine lista utilizatorilor împreună cu valoarea totala a facturilor asociate fiecăruia. Informatiile vor fi plasate sub forma cod numeric personal TAB valoarea totala a facturilor, cate o informatie pe un rand, in fisierul user_total_invoce_value.txt din directorul output.calculate_supply_order_value să se determine lista editurilor către care s-au efectuat cele mai mari plăţi. Informatiile vor fi plasate sub forma denumire factura TAB valoarea totala a comenzilor de aprovizionare, cate o informatie pe un rand, in fisierul publishing_house_total_supply_order_value.txt din directorul output, realizandu-se o ordonare descrescatoare in functie de valoarea totala a comenzilor de aprovizionare.DataBaseWrapperImplementation din pachetul ro.pub.cs.aipi.dataaccess, să se implementeze metoda getReferrences() ce determină pentru o tabelă dată prin nume (primit ca parametru) care sunt tabelele pe care le referă, precum şi atributele care fac obiectul constrângerii de tip FOREIGN KEY. Metoda intoarce o lista de obiecte de tip Referrence care contine denumirea tabelei copil si atributul dependent din cadrul acesteia precum si denumirea tabelei parinte si atributul referit din cadrul acesteia.foreign_key_constraints.txt in directorul output care contine toate constrangerile de tip cheie straina sub forma tabela_copil/atribut_copil referrences tabela_parinte/atribut_parinte, cate o inregistrare pe un rand.RowSet deconectat, să se afişeze cărţile comercializate de editură (precizându-se titlul şi preţul lor), numele editurii care le-a publicat, numele colecţiei şi numele domeniului din care fac parte.