Oi ! Boa tarde,
Alguém sabe como posso e se é possível, configurar o log4j pra fazer logs das minhas consultas com mysql em procedures ?
Abs.!
Oi ! Boa tarde,
Alguém sabe como posso e se é possível, configurar o log4j pra fazer logs das minhas consultas com mysql em procedures ?
Abs.!
Possível é… Vou postar um exemplo utilizando Oracle… deve ser só necessário um ajuste para rodar com MySQL
public class JdbcUtil {
public static void enableDbmsOutput(Connection conn, int buffer_size) {
try {
CallableStatement stmt = conn
.prepareCall("{call sys.dbms_output.enable(?) }");
stmt.setInt(1, buffer_size);
stmt.execute();
System.out.println("Enabled!");
} catch (Exception e) {
System.out
.println("Problem occurred while trying to enable dbms_output! "
+ e.toString());
}
}
public static void printDbmsOutput(Connection conn, Logger logger,
UsuarioVO usuario) {
try {
CallableStatement stmt = conn
.prepareCall("{call sys.dbms_output.get_line(?,?)}");
stmt.registerOutParameter(1, java.sql.Types.VARCHAR);
stmt.registerOutParameter(2, java.sql.Types.NUMERIC);
int status = 0;
do {
stmt.execute();
logger.info(" " + stmt.getString(1) + " USER SESSION ID"
+ usuario.getSessionId());
status = stmt.getInt(2);
} while (status == 0);
System.out.println("End of dbms_output!");
} catch (Exception e) {
System.out.println("Problem occurred during dump of dbms_output! "
+ e.toString());
}
}
}
Exemplo Utilizando a classe
Connection conn;
// Obtem a conexão JDBC
JdbcUtil.enableDbmsOutput(conn, Integer.MAX_VALUE);
StringBuffer params = new StringBuffer();
String call = "BEGIN PCK_PO_PEDIDOS.PROCEDURE_ORACLE (?,?,?); END;";
stmt = (WrappedCallableStatement) conn.prepareCall(call);
stmt.registerOutParameter(1, OracleTypes.NUMBER);
stmt.registerOutParameter(2, OracleTypes.VARCHAR);
stmt.registerOutParameter(3, OracleTypes.VARCHAR);
stmt.execute();
// DBMS
JdbcUtil.printDbmsOutput(conn, logger, usuarioVO);
Veja se ajuda