En aquest tema, aprendrem com accedir a bases de dades utilitzant Groovy. Explorarem les biblioteques i eines que Groovy proporciona per interactuar amb bases de dades, així com exemples pràctics per il·lustrar aquests conceptes.
Continguts
- Introducció a l'Accés a Bases de Dades
- Configuració de la Connexió a la Base de Dades
- Operacions Bàsiques (CRUD)
- Utilització de GORM (Grails Object Relational Mapping)
- Exercicis Pràctics
- Introducció a l'Accés a Bases de Dades
Groovy facilita l'accés a bases de dades mitjançant diverses biblioteques i eines. Algunes de les més utilitzades són:
- Groovy SQL: Una API simple per treballar amb SQL.
- GORM: Una eina de mapeig objecte-relacional (ORM) que s'integra amb Grails.
- Configuració de la Connexió a la Base de Dades
Utilitzant Groovy SQL
Per començar a treballar amb bases de dades en Groovy, primer hem de configurar la connexió. Utilitzarem la classe Sql
de la biblioteca groovy.sql
.
Exemple de Connexió
@GrabConfig(systemClassLoader=true) @Grab('org.hsqldb:hsqldb:2.4.1') import groovy.sql.Sql def dbUrl = 'jdbc:hsqldb:mem:testDB' def dbUser = 'sa' def dbPassword = '' def dbDriver = 'org.hsqldb.jdbcDriver' def sql = Sql.newInstance(dbUrl, dbUser, dbPassword, dbDriver) println "Connexió establerta amb èxit!"
Explicació del Codi
@GrabConfig
i@Grab
: Aquests són utilitzats per descarregar i incloure la dependència de la base de dades HSQLDB.Sql.newInstance
: Crea una nova instància de connexió a la base de dades amb els paràmetres proporcionats.
- Operacions Bàsiques (CRUD)
Crear una Taula
sql.execute ''' CREATE TABLE persones ( id INTEGER IDENTITY, nom VARCHAR(50), edat INTEGER ) ''' println "Taula 'persones' creada amb èxit!"
Inserir Dades
sql.execute "INSERT INTO persones (nom, edat) VALUES ('Joan', 30)" sql.execute "INSERT INTO persones (nom, edat) VALUES ('Maria', 25)" println "Dades inserides amb èxit!"
Llegir Dades
sql.eachRow('SELECT * FROM persones') { row -> println "ID: ${row.id}, Nom: ${row.nom}, Edat: ${row.edat}" }
Actualitzar Dades
sql.execute "UPDATE persones SET edat = 31 WHERE nom = 'Joan'" println "Dades actualitzades amb èxit!"
Esborrar Dades
- Utilització de GORM (Grails Object Relational Mapping)
GORM és una eina poderosa per treballar amb bases de dades en aplicacions Grails. Proporciona una interfície de mapeig objecte-relacional (ORM) que simplifica les operacions amb bases de dades.
Configuració de GORM
Per utilitzar GORM, primer hem de configurar una aplicació Grails. Aquí només proporcionarem una visió general.
Exemple de Domini
Operacions Bàsiques amb GORM
Inserir Dades
def persona = new Persona(nom: 'Joan', edat: 30) persona.save() println "Persona guardada amb èxit!"
Llegir Dades
def persones = Persona.list() persones.each { persona -> println "ID: ${persona.id}, Nom: ${persona.nom}, Edat: ${persona.edat}" }
Actualitzar Dades
def persona = Persona.findByNom('Joan') persona.edat = 31 persona.save() println "Persona actualitzada amb èxit!"
Esborrar Dades
- Exercicis Pràctics
Exercici 1: Crear i Manipular una Taula
- Crea una taula anomenada
llibres
amb les columnesid
,títol
iautor
. - Insereix almenys 3 registres a la taula
llibres
. - Llegeix i mostra tots els registres de la taula
llibres
. - Actualitza el títol d'un dels llibres.
- Esborra un dels llibres de la taula.
Solució
// Crear taula sql.execute ''' CREATE TABLE llibres ( id INTEGER IDENTITY, titol VARCHAR(100), autor VARCHAR(50) ) ''' println "Taula 'llibres' creada amb èxit!" // Inserir dades sql.execute "INSERT INTO llibres (titol, autor) VALUES ('El Quixot', 'Miguel de Cervantes')" sql.execute "INSERT INTO llibres (titol, autor) VALUES ('1984', 'George Orwell')" sql.execute "INSERT INTO llibres (titol, autor) VALUES ('Cien años de soledad', 'Gabriel García Márquez')" println "Dades inserides amb èxit!" // Llegir dades sql.eachRow('SELECT * FROM llibres') { row -> println "ID: ${row.id}, Títol: ${row.titol}, Autor: ${row.autor}" } // Actualitzar dades sql.execute "UPDATE llibres SET titol = 'Nineteen Eighty-Four' WHERE titol = '1984'" println "Dades actualitzades amb èxit!" // Esborrar dades sql.execute "DELETE FROM llibres WHERE titol = 'El Quixot'" println "Dades esborrades amb èxit!"
Conclusió
En aquest tema, hem après com accedir a bases de dades utilitzant Groovy. Hem vist com configurar la connexió, realitzar operacions bàsiques (CRUD) i utilitzar GORM per simplificar aquestes operacions en aplicacions Grails. Els exercicis pràctics proporcionats ajuden a reforçar els conceptes apresos. En el següent tema, explorarem com treballar amb XML i JSON en Groovy.
Curs de Programació Groovy
Mòdul 1: Introducció a Groovy
Mòdul 2: Sintaxi i Característiques del Llenguatge Groovy
Mòdul 3: Programació Orientada a Objectes en Groovy
Mòdul 4: Característiques Avançades de Groovy
Mòdul 5: Groovy en la Pràctica
- Entrada/Sortida de Fitxers
- Treballant amb XML i JSON
- Accés a Bases de Dades
- Desenvolupament Web amb Groovy
Mòdul 6: Proves i Depuració
Mòdul 7: Ecosistema i Eines de Groovy
- Eina de Construcció Gradle
- Framework de Proves Spock
- Framework Grails
- Altres Llibreries i Eines de Groovy
Mòdul 8: Millors Pràctiques i Temes Avançats
- Estil de Codi i Convencions
- Optimització del Rendiment
- Consideracions de Seguretat
- Concurrència en Groovy