|
       6 Mysql Version 3.23.49
       Pentru aceasta aplicatie am folosit baza de date Mysql Version 3.23.49. Mysql este cea mai populara baza de date Open Source SQL si este furnizata de compania comerciala Mysql AB care isi bazeaza afacerea pe furnizarea de servicii bazate pe aceasta baza de date.
       Mysql este un server de baze de date foarte rapid, permitand mai multe fire de executie (thread-uri), mai multi utilizatori si dispunand de un limbaj robust SQL (Structured Query Language).
       Mysql este un produs software gratuit si este sub licenta "GNU genereal public license".
       6.1 Descarcare si instalare
       Versiunea de Mysql utilizata se poate descarca de la:
http://www.mysql.com/downloads/mysql-3.23.html
Pentru a se instala se dezarhiveaza mysql-max-3.23.49-win.zip si se executa Setup.exe. In mod implicit Mysql-Windows este configurat sa fie instalat in directorul `C:\mysql'.
Pentru a se porni serverul Mysql se lanseaza winmysqladmin.exe. La repornirea sistemului Mysql server va porni automat - in meniul
Start->Programs->Startup s-a inclus si winmysqladmin.exe.
       6.2 Driver JDBC
       JDBC abstractizeaza conectarea la baze de date pentru aplicatiile Java. Un furnizor de baza de date da un set de API's (Aplication Programming Interfaces) pentru accesul la datele gestionate de server-ul de baze de date. Driverul JDBC ofera o alternativa pentru utilizarea acestor API's, dependente de vanzator. Desi acest driver elimina necesitatea ca dezvoltatorii sa acceseze API's dependente de vanzator, straturile inferioare Java tot au nevoie sa faca aceste apeluri. JDBC este un intermediar care traduce apelurile JDBC in API's specifice furnizorului de baza de date.
       Sunt patru modalitati de conectare a unei aplicatii la un server de baza de date prin intermediul unui driver:
1. punte JDBC-ODBC. ODBC este partial bazat pe specificatiile X/Open Call-Level Interface (CLI), care sunt un standard pentru accesul la baze de date. Aceasta API furnizeaza legaturi pentru limbajele C si Cobol catre baze de date. Puntea translateaza apelurile JDBC in apeluri ODBC si le transmite catre ODBC prin intermediul librariilor ODBC.
2. Parte Java si parte driver natural. Este folosita o combinatie intre implementarea JAVA si specificatiile furnizorilor, native.
3. Server intermediar de acces la baza de date. O aplicatie server intermediaza intre apelurile JDBC si un alt driver (de tip 2 de exemplu).
4. Driver Java pur. Aceste drivere convertesc apelurile JDBC in apeluri directe catre baza de date, folosind protocolul de retea specific furnizorului de baza de date. Se face astfel o conexiune directa la baza de date printr-un socket (combinatie unica adresa IP si port asociata unei aplicatii care este conectata la o alta aplicatie de pe acelasi host sau aflata pe o masina distanta).
       6.3 MySQL JDBC Driver Version 1.1b
       MySQL JDBC Driver Version 1.1b a fost dezvoltat de Mark Matthews sub licenta GNU GPL. Versiunea cea mai recenta poate fi gasita la:
http://www.worldserver.com/mm.mysql/
       MM.MySQL este un driver tip-4. Singurele cerinte pentru utilizare sunt JDK1.1 sau o versiune compatibila si server de MySQL care sa ruleze pe o masina care sa poata fi accesata de pe masina de pe care se va lansa MM.MySQL in executie.
Pentru instalarea driverului sunt necesari doi pasi:
· despachetarea arhivei descarcate de pe Internet;
· setarea variabilei de mediu CLASSPATH:
CLASSPATH=\path\to\mm.mysql.jdbc-[version];%CLASSPATH%
Dupa dezarhivare vom avea urmatorea structura de directoare:
mm.mysql.jdbc-[version]
COPYING
README
doc
...
mysql_comp.jar
mysql_uncomp.jar
org
gjt
mm
mysql
...
       Setarea variabilei de mediu CLASSPATH este utila pentru compilarea aplicatiilor si a servlet-urilor. Daca este setata corect nu vor aparea erori de compilare.
       Pentru a lucra insa cu servlet-uri, folosind containerul Tomcat, fisierele mysql_comp.jar si mysql_uncomp.jar (compresat si respectiv necompresat) trebuie copiate in directul %TOMCAT_HOME%\lib daca se doreste ca toate aplicatiile web sa aibe acces la aceste clase sau doar in directorul web-inf\lib al aplicatiei web care va lucra cu driverul. In cazul in care nici una din cele doua cerinte nu este respectata serverul web Tomcat nu va putea incarca servlet-uri care acceseaza baza de date mysql.
       6.4 Baza de date "proiect"
Baza de date de sub Mysql se numeste "proiect". Aceasta contine urmatoarele tabele:
Tables_in_proiect
-----------------
users
categ
subcat
alimente
clienti
comenzi
alim_com
       6.4.1 Contul de utilizator
       In baza de date exista un cont de utilizator cu toate drepturile asupra bazei de date proiect. Acest cont, nume "proiect" si parola "adrian" este folosit de servlet-uri pentru lucrul cu baza de date.
       6.4.2 Tabela "users"
Tabela contine urmatoarele campuri:
Field |
Type |
Null |
Key |
Default |
Extra |
cont |
varchar(40) |
|
PRI |
|
|
pass |
varchar(40) |
|
|
|
|
rol |
tinyint(2) |
|
|
0 |
|
Explicatii:
cont - contul utilizatorului
pass - parola utilizatorului
rol - rolul utilizatorului
       Pentru administrarea tabelelor in tabela utiliz sunt specificati urmatorii utilizatori ai magazinului virtual:
- "administrator", cu parola "admin", rol de administrator;
- "operator" cu parola "operator", rol de operator;
- "vanzator" cu parola "vanz", rol de vvanzator.
       6.4.3 Tabela "categ"
Tabela contine urmatoarele campuri:
Field |
Type |
Null |
Key |
Default |
Extra |
cod |
tinyint(3) |
|
PRI |
|
|
den |
varchar(30) |
|
|
|
|
Explicatii:
cod - este codul categoriei, folosit pentru interogari
den - denumirea categoriei
       6.4.4 Tabela "subcat"
Tabela contine urmatoarele campuri:
Field |
Type |
Null |
Key |
Default |
Extra |
c1 |
smallint(4) |
|
PRI |
0 |
|
c2 |
smallint(4) |
|
PRI |
0 |
|
den |
varchar(30) |
|
|
|
|
Explicatii:
c1 - codul categoriei
c2 - codul subcategoriei
den - denumirea subcategoriei
       6.4.5 Tabela "alimente"
Tabela contine urmatoarele campuri:
Field |
Type |
Null |
Key |
Default |
Extra |
codp |
bigint(14) |
|
PRI |
0 |
|
denp |
varchar(255) |
|
|
|
|
pretp |
int(10) |
0 |
|
|
|
um |
varchar(10) |
|
|
|
|
stoc |
smallint(5) |
|
|
0 |
|
cat |
tinyint(3) |
|
|
0 |
|
expl |
varchar(255) |
|
|
|
|
no |
int(11) |
|
|
0 |
|
type |
varchar(5) |
|
|
|
|
Explicatii:
codp - codul produsului: (timpul in format Unix (numarul de secunde din 1970))*10 adunat cu 1, 2 sau 3
denp - enumirea produsului (255 caractere maxim)
pretp - pretul produsului ( sa nu depaseasca 2147483646)
um - unitatea de masura
cat - subcategoria de care apartine produsul
expl - descrierea produsului (255 caractere maxim)
no - numarul de ordine al produsului in cadrul subcategoriei
type - tipul fisierului imagine atasat produsului.
       6.4.6 Tabela "clienti"
Tabela contine urmatoarele campuri:
Field |
Type |
Null |
Key |
Default |
Extra |
codf |
varchar(15) |
|
PRI |
|
|
pass |
varchar(15) |
|
|
|
|
nume |
varchar(30) |
|
|
|
|
pren |
varchar(30) |
|
|
|
|
ocup |
varchar(30) |
|
|
|
|
firma |
varchar(30) |
|
|
|
|
adresa |
varchar(200) |
|
|
|
|
oras |
varchar(30) |
|
|
|
|
telmod |
varchar(14) |
|
|
|
|
telfix |
varchar(14) |
|
|
|
|
fax |
varchar(14) |
|
|
|
|
email |
varchar(30) |
|
|
|
|
dtnast |
date |
|
|
0000-00-00 |
|
tipcc |
varchar(10) |
|
|
0 |
|
ccno |
varchar(15) |
|
|
|
|
dtcc |
date |
|
|
0000-00-00 |
|
sex |
varchar(5) |
|
|
|
|
Explicatii:
codf - codul clientului care poate fi codul fiscal in cazul unei firme si numele de cont in celelalte cazuri
pass - parola
nume - numele
pren - prenumele
ocup - ocupatia
firma - firma
adresa - adresa la care clientul primeste marfa de obicei; daca nu coincide cu adresa de livrare atunci aceasta este specificata in campul "cerinte comanda" din pagina de validare a comenzii.
oras - localitatea clientului
telmob - numarul de telefon mobil
telfix - numarul de telefon fix
fax - numarul de fax
email - o adreasa de e-mail valida de forma [email protected]
dtnst - data nasterii
tipcc - tip carte de credit
ccno - numarul cartii de credit
dtcc - data expirarii pentru cartea de credit
sex - sexul clientului
       6.4.7 Tabela "comenzi"
Tabela contine urmatoarele campuri:
Field |
Type |
Null |
Key |
Default |
Extra |
codc |
varchar(17) |
|
PRI |
|
|
codf |
varchar(17) |
|
|
|
|
specif |
varchar(255) |
|
|
|
|
tip |
char(1) |
|
|
|
|
Explicatii:
codc - codul comenzi: numarul de microsecunde de la inceputul anului 1970
codf - numele de cont al clientului
specif - cerintele comenzii
tip - grupa in care este incadrata comanda de catre utilizator (daca este noua, in curs, realizata, etc)
       6.4.8 Tabela "alim_com"
Tabela contine urmatoarele campuri:
Field |
Type |
Null |
Key |
Default |
Extra |
codc |
varchar(13) |
|
PRI |
|
|
codp |
varchar(13) |
|
PRI |
|
|
cant |
int(11) |
|
|
0 |
|
Explicatii:
codc - codul comenzii din care face parte
codp - codul produsului comandat(luat din tabela alimente)
cant - cantitatea comandata
|
|