Podcast grails.org.mx: Episodio 1 de la Temporada

Dec 15, 2009 by     No Comments    Posted under: Groovy

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.

 

Got anything to say? Go ahead and leave a comment!

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*