Contribuye

José Juan Reyes (@neodevelop) y Domingo Suárez Torres (@domix) una vez mas entregan otra edición del podcast de grails.org.mx

En este episodio hablamos sobre uno de los usos de la metaprogramación que Groovy hace en las clases de las librerias estandar de Java, nos referimos al GDK, especificamente hablamos en esta ocasión del GSQL, les dejamos un ejemplo listo para ser ejecutado:

 

//Esta anotacion nos sirve para indicarle a Groovy
 //que use la libreria de Hsqldb
 @Grab(group='org.hsqldb', module='hsqldb', version='1.8.0.10')
 class Conexion {
    def sql
    public Conexion() {
        /* Esto es un truco para que jale la anotacion @Grab en Groovy 1.6.x, 
           en Groovy 1.7 deberia funcionar sin este truco */
        this.getClass().getClassLoader().getURLs().each {
            ClassLoader.getSystemClassLoader().addURL(it)
        }
        
        /* Creamos nuestra conexion a la base de datos, los parametros enviados son:
           url, username, password, y driverClassName */
        sql = groovy.sql.Sql.newInstance('jdbc:hsqldb:file:ejemploDB', 'sa', '', 'org.hsqldb.jdbcDriver')
    }
    
 
    def creaEstructura() {
        // delete table if previously created
        try {
           sql.execute('drop table PERSON')
        } catch(Exception e){}
        
        // create table
        sql.execute('''create table PERSON (
            id integer not null primary key,
            firstname varchar(20),
            lastname varchar(20),
            location_id integer,
            location_name varchar(30)
        )''')
        sql.commit()
    }
    
    def agregaRegistros() {
        // now let's populate the table
        def people = sql.dataSet('PERSON')
        people.add( firstname:'James', lastname:'Strachan', id:1, location_id:10, location_name:'London' )
        people.add( firstname:'Bob', lastname:'Mcwhirter', id:2, location_id:20, location_name:'Atlanta' )
        people.add( firstname:'Sam', lastname:'Pullara', id:3, location_id:30, location_name:'California' )
        sql.commit()
        def results = sql.firstRow('select firstname, lastname from PERSON where id=1').firstname
        def expected = 'James'
        assert results == expected
        
        // do a query to confirm that our change actually worked
        results = sql.firstRow('select firstname, lastname from PERSON where id=1').firstname
        expected = 'James'
        assert results == expected
    }
    
    def cierraConexion() {
        sql.close()
    }
 }
 
 def c = new Conexion()
 c.creaEstructura()
 c.agregaRegistros()
 c.cierraConexion()
 

Los temas a detalle son:

Video de la charla de JJ sobre Grails en Campus Party

GDK

Imagen del flujo de ejecución de métodos de Groovy

GSQL

Critica de JDBC

Hablamos un poco de ORM

Soporte de JDBC con Groovy usando groovy.sql.Sql

Código en Groovy usando GSQL

Duración: 65 minutos

Tamaño: 33 MB

Lo pueden descargar directo desde aqui o suscribiendose al feed.

 

![][7]

[7]: http://www.springhispano.org/images/rssicon.png

comments powered by Disqus