Recuperar o sql executado pelo banco com os ? substituidos

2 respostas
Thundercat

De acordo com a seguinte estrutura:

String sql = " select nome from usuario where codigo = ? ";		
 try{
	conn = getDao().getConnection();				
	pstmt = conn.prepareStatement(sql);
	pstmt.setInt(1, codigo);
	rs = pstmt.executeQuery();
	if (rs.next()) {
            // preenche obj 
	} else {
	   // not found
	}			
 }catch (SQLException e) {	
      // tratamento de exceção 
 }finally{
     // fecha conexões 
 }

Como eu faço para recuperar o sql executado pelo banco com os ? substituidos pelos parâmetros passados? Existe alguma classe para isso?

no caso se eu passasse 30 como código do usuário, eu gostaria de recuperar select nome from usuario where codigo = 30

Desde já, grato

2 Respostas

fsquadro

Tente o seguinte:

pstmt.setInt(1, codigo);
pstmt.toString();
Thundercat

Caso eu faça um ps.toString() o que eu vou obter é o endereço do objeto na memória, por exemplo: oracle.jdbc.driver.T4CPreparedStatement@111a3ac.

Alguma outra sugestão?

Desde já, grato.

Criado 6 de junho de 2007
Ultima resposta 3 de mar. de 2009
Respostas 2
Participantes 2