Prezados Srs.
Estou com um probleminha aqui. Tenho uma classe que retorna uma StringBuffer, até ai tudo bem, só que quando entra no select ele simplesmente não executa o select, como posso debugar a query no código????? abaixo segue o código:
package estoque;
import java.io.*;
import java.sql.*;
import java.util.*;
public class Relatorio{
public static String geraRelatorio(int cd_especie){
StringBuffer html = new StringBuffer();
String retorno = null;
html.append("<h1>"+cd_especie+"</h1>");
html.append("<table border=\"1\" width=\"750\" cellspacing=\"1\" cellpadding=\"2\" align=\"center\">"+
"<tr>"+
"<td width=\"100%\" colspan=\"7\" bgcolor=\"#000099\" align=\"center\">"+
"<font color=\"#FFFFFF\"><b>Relatório de Estoque</b></p></td>"+
"</tr>"+
"<tr>"+
"<th width=\"16%\" bgcolor=\"#800000\"><font color=\"#FFFFFF\"><b>Código</b></font></th>"+
"<th width=\"16%\" bgcolor=\"#800000\"><font color=\"#FFFFFF\"><b>Descrição</b></font></th>"+
"<th width=\"17%\" bgcolor=\"#800000\"><font color=\"#FFFFFF\"><b>Unidade</b></font></th>"+
"<th width=\"17%\" bgcolor=\"#800000\"><font color=\"#FFFFFF\"><b>Qtd. Atual</b></font></th>"+
"<th width=\"17%\" bgcolor=\"#800000\"><font color=\"#FFFFFF\"><b>Ult. Consumo</b></font></th>"+
"<th width=\"17%\" bgcolor=\"#800000\"><font color=\"#FFFFFF\"><b>Cons. Médio</b></font></th>"+
"<th width=\"17%\" bgcolor=\"#800000\"><font color=\"#FFFFFF\"><b>Duração</b></font></th>"+
"</tr>");
try {
//Cria conexão com a base de dados
Connection con = DataConnect.connectDb();
Statement stmt = con.createStatement();
String sql = "select * from dbamv.v_estoque_atual where cd_especie = "+cd_especie;
ResultSet rs = stmt.executeQuery(sql);
//faz primeira busca no banco de dados
while (rs.next()){
int cd_produto = rs.getInt("cd_produto");
String ds_produto = rs.getString("ds_produto");
String ds_unidade = rs.getString("ds_unidade");
int qt_atual = rs.getInt("qt_atual");
int qt_ult_cons = rs.getInt("qt_ultimo_consumo");
int qt_cons_medio = rs.getInt("qt_consumo_medio");
int dura = qt_atual/qt_cons_medio;
html.append("<tr>"+
"<td width=\"16%\" bgcolor=\"#FFCC00\"><font color=\"#000000\"><b>"+cd_produto+"</b></font></td>"+
"<td width=\"16%\" bgcolor=\"#FFCC00\"><font color=\"#000000\"><b>"+ds_produto+"</b></font></td>"+
"<td width=\"17%\" bgcolor=\"#FFCC00\"><font color=\"#000000\"><b>"+ds_unidade+"</b></font></td>"+
"<td width=\"17%\" bgcolor=\"#FFCC00\"><font color=\"#000000\"><b>"+qt_atual+"</b></font></td>"+
"<td width=\"17%\" bgcolor=\"#FFCC00\"><font color=\"#000000\"><b>"+qt_ult_cons+"</b></font></td>"+
"<td width=\"17%\" bgcolor=\"#FFCC00\"><font color=\"#000000\"><b>"+qt_cons_medio+"</b></font></td>"+
"<td width=\"17%\" bgcolor=\"#FFCC00\"><font color=\"#000000\"><b>"+dura+"</b></font></td>"+
"</tr>");
}
rs.close();
//tenta fechar a conexão com o banco de dados
try {
con.close();
} catch(Exception e) {
e.printStackTrace();
}
//pega erro (se houver na query)
} catch(Exception e) {
e.printStackTrace();
}
//fecha tabela do relatório
html.append("<tr><td colspan=\"7\"><font color=\"#000000\"><b>Vermelho: XXXX - Laranja: XXXX - Verde: outros</b></font></td></tr>");
html.append("</table>");
retorno = html.toString();
retorno = html.toString();
return retorno;
}
}
Só queria saber como retornar uma exception se minha query estiver errada. Leve em consideração que o select é feito em uma view chamada "v_estoque_atual" e que funciona se eu usar o mesmo select direto no banco?!?!?!?
Agradeço a ajuda!