Descobri o erro moçada. O problema não está na consulta, e sim pelo seguinte.
eu possuo uma condição no meu servlet que ele puxa dois métodos e em cada método ele faz um preparedStatement diferente, com isso, eu fechava a conexão no anterior e por isso dava esse problema. assim sendo:
dentro do meu servlet
controleDao.addHistorico(localAtual,localDestino,codigo);
controleDao.atualizaDestino(localDestino,codigo);
onde em cada um temos.
public void addHistorico(String localAtual, String localDestino, String codigo){
try {
Calendar cal = new GregorianCalendar();
//int dia_da_semana = cal.get(Calendar.DAY_OF_WEEK); // 1=Domingo, 2=Segunda-Feira, etc
int dia = cal.get(Calendar.DAY_OF_MONTH); // 1...
int mes = cal.get(Calendar.MONTH); // 0=Jan, 1=Fev, ...
int ano = cal.get(Calendar.YEAR);
String data = ""+dia+"/"+mes+"/"+ano;
String sql = "INSERT INTO \"Historico\"(\"Origem\",\"Data\", \"Destino\", cod_pro) VALUES (?, ?, ?, ?);";
PreparedStatement ps = conexao.prepareStatement(sql);
ps.setString(1, localAtual);
ps.setDate(2,controleDAO
.getSqlDate(converterStringToDate(data)) );
ps.setString(3,localDestino);
ps.setInt(4,Integer.parseInt(codigo));
ps.execute();
e o outro é:
public void atualizaDestino(String localDestino, String codigo) {
try{
String sql = "UPDATE \"Protocolo_protocolo\" SET \"DES_PRO\" = ? WHERE \"COD_PRO\" = ?";
PreparedStatement ps = conexao.prepareStatement(sql);
ps.setString(1,localDestino);
ps.setString(2,codigo);
ps.execute();
se eu der um “ps.close()” no metodo anterior, ele trará problemas pro próximo método. Agora eu pergunto, onde está o erro em questão de programação de tudo isso? Em que me acarretará eu não fechando a conexão do método anterior ? Alguém poderia me passar essa informação? grato !