Groovy + SQL sur Cocoon || Groovy + SQL databases access on Cocoon
Par foxmask le vendredi, mai 28 2004, 11:05 - General - Lien permanent
un petit "How To" sur "comment utiliser Groovy _dans_ cocoon" et là attention ; ca DECHIRE !!!
The Same HowTo in English and in plain text
my contrib to the wiki cocoon
En XSP pour afficher la liste des joueurs de foot il faut faire ce qui suit :
<esql:connection>
<esql:pool>foot</esql:pool>
<esql:execute-query>
<esql:query>SELECT * FROM m_player </esql:query>
<esql:results>
<esql:row-results>
<player>
<id_player><esql:get-int column="id_player"/></id_player>
<player_name><esql:get-string column="player_name"/></player_name>
<player_birth><xsp:expr><esql:get-string column="player_birth"/></xsp:expr></player_birth>
<player_town><esql:get-string column="player_town"/></player_town>
<player_size><esql:get-string column="player_size"/></player_size>
<player_weight><esql:get-string column="player_weight"/></player_weight>
<player_start><esql:get-string column="player_start"/></player_start>
<player_photo><esql:get-string column="player_photo"/></player_photo>
<player_position><esql:get-string column="player_position"/></player_position>
<id_club><esql:get-string column="id_club"/></id_club>
</player>
</esql:row-results>
</esql:results>
</esql:execute-query>
</esql:connection>
avec GROOVY on arrive à cela :
import groovy.sql.Sql
import groovy.xml.SAXBuilder
sql = Sql.newInstance('jdbc:postgresql://localhost:5432/foot, "footlogin","footpass","org.postgresql.Driver")
contentHandler = bsf.lookupBean("contentHandler")
xml = new SAXBuilder(contentHandler)
contentHandler.startDocument()
xml.root() {
sql.eachRow('select * from m_player') { joueur |
xml.player() {
id_player(joueur.id_player);
player_name(joueur.player_name);
player_url_name(joueur.player_url_name);
player_birth(joueur.player_birth);
player_town(joueur.player_town);
player_size(joueur.player_size);
player_weight(joueur.player_weight);
player_start(joueur.player_start);
player_photo(joueur.player_photo);
player_position(joueur.player_position);
id_club(joueur.id_club);
}
}
}
sql.close()
contentHandler.endDocument()
Conclusion
le resultat est le meme mais :
- XSP est de moins en moins utilisé (meme sil l'est encore beaucoup ; la tendance n'est plus l'xsp car trop vieux et moins souple )
- taper les <gnagna>text</gnagna> c'est d'une part pénible et d'autre part prete à erreur si on tape un "noeud" de travers alors qu'avec groovy gnagna("text") ne risque pas de poser de pb sur le format meme du "noeud".
- gain de temps pour ne plus ecrire _que_ la partie commancant par xml.root !!!
- Groovy, qui ne depend nullement de Cocoon (alors que XSP ...), à le vent en poupe et est utilisé par des miliers de developpeurs Java .