Advertisement
Guest User

Untitled

a guest
Jan 5th, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.03 KB | None | 0 0
  1. /**
  2. *@author Codemonkey Junior Blogspot
  3. *@description Usode JDBI en Groovy
  4. */
  5.  
  6. //importamos la librería JDBI con @Grapes, @Grab
  7. @Grapes(
  8. @Grab(group='org.jdbi', module='jdbi', version='2.77')
  9. )
  10. //importamos y cargamos el conector MySQL
  11. @GrabConfig(systemClassLoader=true)
  12. @Grab(group='mysql', module='mysql-connector-java', version='5.1.6')
  13.  
  14.  
  15. import java.sql.ResultSet;
  16. import java.sql.SQLException;
  17. import org.skife.jdbi.v2.sqlobject.Bind;
  18. import org.skife.jdbi.v2.sqlobject.SqlQuery;
  19. import org.skife.jdbi.v2.sqlobject.customizers.RegisterMapper;
  20. import org.skife.jdbi.v2.DBI;
  21. import org.skife.jdbi.v2.Handle;
  22. import org.skife.jdbi.v2.tweak.*;
  23. import org.skife.jdbi.v2.*;
  24.  
  25. //Clase principal del programa
  26. class JDBIGroovy{
  27. static main(args) {
  28. println "Iniciando ..."
  29. DBI dbi = new DBI("jdbc:mysql://localhost:3306/test",
  30. "root",
  31. "5432");
  32. println "Abriendo conexion ..."
  33. Handle h = dbi.open();
  34. println "Abierto ..."
  35. if(!dbi.open().isInTransaction()){
  36. println "No esta realizando alguna transaccion";
  37. }
  38.  
  39. PersonajeDAO pers=null;
  40. try{
  41. pers=dbi.open(PersonajeDAO.class);
  42. if(pers.verTodo().size() > 0){
  43. println "Lista de persona llena!!: "+pers.verTodo().size();
  44. println " "+pers.verTodo().toString() != "[null, null, null]" ? "llena" : "vacia";
  45. //Mostramos todos los resultados
  46. for(int i=0 ; i < pers.verTodo().size(); i++){
  47. println "id:"+pers.verTodo().get(i).personaje_id;
  48. println "nombre:"+pers.verTodo().get(i).nombre;
  49. println "apellido paterno:"+pers.verTodo().get(i).apellidos;
  50. println "apellido materno:"+pers.verTodo().get(i).biografia;
  51. }
  52. }
  53. }catch(Exception ex){
  54. println "Error: "+ex.toString()
  55. //ex.printStackTrace();
  56. }finally{
  57. pers.close();
  58. }
  59.  
  60. h.close();
  61.  
  62. }
  63. }
  64.  
  65.  
  66.  
  67. //Podemos seguir programando al estilo Java, pero también se puede hacer al estilo Groovy
  68. //Esta es la clase que representa a la tabla personaje
  69. class ModeloPersonaje implements java.io.Serializable{
  70. private static final long serialVersionUID=1L;
  71. private int personaje_id;
  72. private String nombre;
  73. private String apellidos;
  74. private String biografia;
  75.  
  76. public ModeloPersonaje(){}
  77.  
  78. public void setPersonaje_Id(int personaje_id){
  79. this.personaje_id=personaje_id;
  80. }
  81.  
  82. public int getPersonaje_Id(){
  83. return personaje_id;
  84. }
  85.  
  86. public void setNombre(String nombre){
  87. this.nombre=nombre;
  88. }
  89.  
  90. public String getNombre(){
  91. return nombre;
  92. }
  93.  
  94.  
  95. public void setApellidos(String apellidos){
  96. this.apellidos=apellidos;
  97. }
  98.  
  99. public String getApellidos(){
  100. return apellidos;
  101. }
  102.  
  103.  
  104. public void setBiografia(String biografia){
  105. this.biografia=biografia;
  106. }
  107.  
  108. public String getBiografia(){
  109. return biografia;
  110. }
  111. }
  112.  
  113. //Aquí seteamos los valores obtenidos en la consulta
  114. class ModeloPersonajeMapper implements ResultSetMapper<ModeloPersonaje> {
  115.  
  116. @Override
  117. public ModeloPersonaje map(int arg0, ResultSet r, StatementContext arg2) throws SQLException {
  118. ModeloPersonaje mpersonaje=new ModeloPersonaje();
  119. mpersonaje.setPersonaje_Id(r.getInt("personaje_id"));
  120. mpersonaje.setNombre(r.getString("nombre"));
  121. mpersonaje.setApellidos(r.getString("apellidos"));
  122. mpersonaje.setBiografia(r.getString("biografia"));
  123. return mpersonaje;
  124. }
  125.  
  126. }
  127.  
  128.  
  129. //Esta clase es donde se ejecutan las consultas SQL
  130. @RegisterMapper(ModeloPersonajeMapper.class)
  131. public interface PersonajeDAO {
  132. @SqlQuery("SELECT test.personaje.personaje_id, test.personaje.nombre, test.personaje.apellidos, test.personaje.biografia FROM test.personaje WHERE test.personaje.personaje_id = :id")
  133. ModeloPersonaje findById(@Bind("personaje_id") id);
  134. @SqlQuery("SELECT test.personaje.personaje_id, test.personaje.nombre, test.personaje.apellidos, test.personaje.biografia FROM test.personaje")
  135. List<ModeloPersonaje> verTodo();
  136. void close();
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement