martes, 24 de enero de 2012

Imprimir Statements (Querys y Procedimientos Almacenados) en Java

La solución a los statements en java, pues según leí, esto depende del conector JDBC con el que estes trabajando hay conectores, con simplemente escribir System.out.println y el statement te imprimen la consulta pero que pasa cuando trabajas con una base de datos como infiernix y algo falla en la ejecución de un query o un procedimiento y tienes unas 20 llamadas y la tarea de debuguear se vuelve tediosa, sobre todo si tienes un procemiento almacenado con 78 parametros, pues bueno para ver que esta pasando en los querys y en los procemientos tenemos algo llamado P6spy lo puedes bajar de http://sourceforge.net/projects/p6spy/.

Pasos para instalar p6spy

1- Bajarte el archivo p6spy-install.jar abrirlo con winrar y descomprimir o sacar p6spy.jar y spy.properties.
2- Agregale a las libs de tu proyecto p6spy.jar
3.-En la parte(puede ser una clase o un xml) donde hagas referencia al driver cambiala, ejemplo:
Yo hago referencia al driver en una clase.
  //Class.forName("com.informix.jdbc.IfxDriver"); Este ya no va
        Class.forName("com.p6spy.engine.spy.P6SpyDriver");
4.- El archivo spy.properties colocalo en la raíz del src de tu proyecto.
5.-El archivo spy.properties edita las siguientes 2 líneas. Yo como trabajo con informix este es el nombre de mi driver, recuerda que este varía según la base de datos y la carpeta temporal debe de existir.
realdriver=com.informix.jdbc.IfxDriver
logfile     = c:/temporal/spy.log
6.- Corre tu aplicación normalmente y revisa el log spy.log dentro de temporal
resultado de ejemplo con un  procedimiento almacenado en informix
1427018443548|17|0|statement|{call procedimientoconsulta_marcas(?,?,?,?,?,?,?) }|{call procedimientoconsulta_marcas(0,0,'57777000000',600,0,0,'208980') }

Como siempre espero que les sirva

Nota: No recomiendo el uso en ambientes productivos

No hay comentarios:

Publicar un comentario