Este - arhivă

Accesarea bazei de date din servlet

Aici veți găsi informații exhaustive despre cum să accesați baza de date, cum să lucrați cu ea și ce "capcane" există. Mai întâi, de ce vom lucra cu baza de date de la un servlet. Faptul este că interesul este că, pentru a lucra cu baza de date, localizată pentru utilizator pe serverul de la distanță, și nu pe mașina locală. Optimal, în opinia mea, este scrierea pachetului Applet-Servlet. Aplicația este responsabilă de interfața de interacțiune a utilizatorului cu baza de date. Servlet - procesează cereri, appleturi, funcționează cu baza de date și trimite datele de răspuns. Ie întreaga "bucătărie internă" este plasată pe servlet. Mai ales pentru că applet-ul este larg și accesul la baza de date nu este permis. Dacă nu doriți să deranjezi deloc, puteți genera pagini HTML, în loc să afișați date prin intermediul appletului. Pentru a testa servlet-urile mele folosesc Java Web Server 2.0 - implementează cel mai bine tehnologia servlet (nu este ciudat, deoarece atît serverul, cît și servletele produselor Sun). Deci, să începem.

Opțiunea 1: Driverul ODBC

Opțiunea 2: driverul mySQLNote: Apoi, lucrul cu baza de date este același, indiferent de tipul de bază de date SQL, adică încărcarea driverelor diferite, putem lucra cu diferite baze de date fără a schimba codul sursă (pe care vom învăța să îl creăm).

Aici este de remarcat faptul că obiectul primit conexiune ar trebui să fie stocat în HttpSession. Pentru cei care nu știu ce este, voi explica pe degetele mele. Între browser și server, când se numește un servlet, se formează o sesiune, urmată de serv. Deci, această sesiune poate memora perechi, cum ar fi: nume-valoare pe care le vom folosi pentru următorul apel la servlet, nu re-stabili o conexiune, rapid și să-l din sesiunea:

Acum că noi (cu astfel de dificultăți) am primit scrisori rusești și tot felul de tsiferki foarte necesare acolo, ne vom gândi cum să transmitem aceste informații către applet. Este foarte ușor de făcut, conștienți de faptul că datele noastre sunt stocate în vectorul de obiect, și el, la rândul său implementează interfața Serializable, ceea ce ne va permite să transmită cu ușurință datele la applet.

Și acest lucru, deoarece nu este ciudat, totul, pe lângă scrisorile rusești, nu este distorsionat, tk. transferul se face octet-octet. Pentru ca totul să pară foarte elegant, vom lista textul părții receptoare (applet). Notă: Este necesar să înțelegem că vom trimite date din applet-ul servlet folosind metoda POST, astfel încât datele ar trebui să aibă forma "name = value". Acest lucru ar trebui să se facă aproximativ în felul următor:

Deci, procesul este finalizat, applet-ul a primit datele provenite din baza de date folosind un servlet, pe lângă faptul că am evitat problema asociată simbolurilor chirilice. Acum rămâne să scriem o interfață care ar afișa în mod colorat datele pe care le-am primit atât de mult din baza de date. În aceste scopuri, recomandăm obiectul Swing JTable. Lucrul este confuz, dar dacă te uiți în ea, totul va arăta foarte frumos. Rămâne să ne dăm seama cum să obținem servletul pentru a prelua datele pe care intenționează să le trimită, de exemplu atunci când editează o bază de date. Conform documentației JDBC, acest lucru ar trebui să fie făcut aproximativ în felul următor:

Dar, în cazul în applet-ul este trimis la datele sub formă de litere rusești, ai nevoie de recodare valoare primite: Dacă nu doriți să comunice cu applet-ul (acest lucru este rezonabil, în cazul în care resursele de sistem nu permit utilizarea bibliotecii Swing), atunci, desigur, va alege modul de formare dinamic Pagini HTML. Pentru a intra aici, ar trebui să fie în felul următor: Și dacă luați datele din baza de date, cu litere rusești, problema nu poate apărea, de exemplu, coroborat JavaWebServer și Access, nu recodare nu este necesară, dar cu mySQL, acest număr nu este trecut, dar aici trebuie să vă deja ghicit, ajută metoda descrisă mai sus, prin UnicodeStream. Dacă doriți să vedeți fragmentul pagina HTML generat chirilic textul (nu sunt luate din baza de date): Ei bine, asta e tot, la fel ca tot ce am vrut să-ți spun, mi-am spus. Dacă cineva are întrebări despre articolul meu, scrieți-l la săpun, voi încerca să răspund.