Resum

Hi ha diferents formes de crear aplicacions que es connecten amb una base de dades, com per exemple desenvolupant l’aplicació “SocIoc”.

JDBC permet a les aplicacions Java connectar amb diverses bases de dades sense que com a desenvolupadors us hagueu de preocupar de les característiques particulars de cada base de dades. Per aconseguir això, l’arquitectura JDBC està formada per un gestor de drivers que s’encarregarà de carregar en memòria el driver necessari per poder treballar amb cada base de dades. El gestor sabrà quin driver carregar en funció de JDBC URL que té l’estructura JDBC: Tipus_de_base_de_dades:<Host>:<Port>/<Base_de_dades>. Per tant, caldran diferents drivers en funció de la base de dades amb què es vulgui treballar.

El framework de tests unitaris JUnit permet escriure tests per testejar aplicacions que connecten amb bases de dades sense la necessitat d’utilitzar una base de dades real. Emprar bases de dades en memòria per als tests té l’avantatge de sempre ens assegurarem que els tests s’executaran amb les mateixes condicions de partida; en aquest cas, amb les mateixes dades. Netbeans es pot configurar per tal de poder calcular la cobertura dels tests unitaris, és a dir, per saber quin percentatge del codi està testejat pels tests unitaris.

Les classes Connection, Statement i ResultSet es poden utilitzar per fer consultes (lectura, escriptura i actualització de dades) a una base de dades. Cal transformar el resultat de la consulta (ResultSet) a objectes Java que representen els objectes de domini de la vostra aplicació. El problema de la injecció SQL es pot solucionar utilitzant PreparedStatement.

Fer servir JDBC implica una gran quantitat de treball manual; per exemple, quan s’han de convertir els resultats d’una consulta a la base de dades en classes Java. JDBC no té portabilitat, ja que la sintaxi de la consulta canviarà d’una base de dades a una altra. Això és un problema, ja que si en el futur es vol canviar de base de dades s’haurà de reescriure el codi. Per solucionar aquests problemes es va crear JPA, una especificació que proporciona una capa transparent que s’encarrega de gestionar els detalls específics per a cada base de dades i d’establir i gestionar les relacions entre les taules de la base de dades i les classes del codi Java.

Utilitzant les anotacions @Entity i @Table, conjuntament amb una unitat de persistència, es fa la transformació de dades a les taules en la base da dades en objectes Java. La unitat de persistència conté la informació de com es connectarà l’aplicació amb la base de dades. Una unitat de persistència es pot configurar per connectar-se a un pool de connexions d’un servidor Glassfish. La connexió i desconnexió amb una base de dades és una operació costosa. Un pool de connexions estableix un nombre de connexions amb la base de dades que es mantenen obertes i que es reutilitzen per tal de millorar l’eficiència de l’aplicació.

JPA és simplement una especificació, no una implementació. Això vol dir que està format per una sèrie d’interfícies, però que no hi ha cap implementació. Per tant, per poder utilitzar JPA en una aplicació es necessita una implementació. Hibernate és una implementació de JPA que crea una capa entre la BD i l’aplicació. S’encarregarà de gestionar la configuració de com accedir a la BD, com fer el mapeig entre les classes i taules i com establir les relacions entre diferents taules.

Spring és un framework d’inversió del control (IoC) format d’una sèrie de mòduls que faciliten la feina de desenvolupar aplicacions Java. A Spring, una classe no s’encarregarà de crear instàncies de les seves dependències, sinó que el contenidor s’encarregarà de crear els objectes amb la configuració necessària i injectar-los on faci falta. Això afavoreix la composició sobre l’herència de classes, la qual cosa fa que hi hagi menys dependències entre les classes, i per això el codi serà més fàcilment reutilitzable i més fàcilment testejable. Combinar Spring i Hibernate permet dissenyar aplicacions Java que treballin amb bases de dades de forma eficient i seguint bons patrons de disseny.

Anar a la pàgina següent:
Resultats d'aprenentatge