Problemas no UPDATE do java com banco Mysql

04/04/2016

1

Olá, estou com problemas no UPDATE .
Estou utilizando o Mysql e Java no netbeans, porém o código da string SQL não atualiza, não sei o que pode estar dando erro, pois já verifiquei o sql e aparentemente está ok.
Tenho na minha classe DAO o metódo update e o pesquisaCriterio e chamo no meu form, quando tento atualizar ele dá erro no pesquisarCriterio e no update e não consigo resolver, segue o codigo da DAO e de como estou chamando no form:
Tenho duas fk que estão cadastradas no meu banco, desde já agradeço quem puder me ajudar.
Abaixo segue a linha do código atualizar e pesquisar critério na classe DAO.
Aguardando resposta. Obg!

ReservaDAO

[code]
public boolean atualizar(Object obj) {
Reserva reservaVO;
//Verifica se o objeto passado é do tipo Reserva
if (obj instanceof Reserva) {
reservaVO = (Reserva) obj; //converte de Object para Reserva
} else {
return false;
}
String sql = "UPDATE reserva SET tipoReserva = '" + reservaVO.getTipoReserva()
+ "', dataReserva = '" + reservaVO.getDataReserva()
+ "', dataEntrada = '" + reservaVO.getDataEntrada()
+ "', dataSaida = '" + reservaVO.getDataSaida()
+ "', horarioEntrada = '" + reservaVO.getHorarioEntrada()
+ "', horarioSaida = '" + reservaVO.getHorarioSaida()
+ "', qtdPessoas = '" + reservaVO.getQtdPessoas()
+ "', status = '" + reservaVO.getStatus()
+ "', codHospede = '" + reservaVO.getCodHospede()
+ "', codApartamento = '" + reservaVO.getCodApartamento()
+ "' WHERE codReserva = '" + reservaVO.getCodReserva() + "'";
try {
//Abre a conexao com o banco
getBanco().abrir();
Statement stm = getBanco().getConexao().createStatement();
if (stm.executeUpdate(sql) > 0) {
getBanco().fechar();
return true;
} else {
getBanco().fechar();
return false;
}
} catch (SQLException ex) {
getBanco().fechar();
ex.printStackTrace();
return false;
}
}
[\code]

ReservaDAO - pesquisarCriterio

public Object pesquisarCriterio(String criterio) {
//Objeto de Retorno
Reserva reservaVO = null;
String sql = "SELECT r.codReserva , H.nome, A.numeroApto,"
+ " r.tipoReserva , r.dataReserva , r.dataEntrada ,"
+ " r.dataSaida , r.horarioEntrada , r.horarioSaida ,"
+ " qtdPessoas , r.status "
+ " FROM reserva r"
+ " INNER JOIN Hospede AS H ON r.codReserva = H.codHospede "
+ " INNER JOIN Apartamento AS A ON ( r.codReserva = A.codApartamento) "
+ " WHERE r.codReserva " + criterio + " Order by codReserva" ;
getBanco().abrir();
try {
Statement stm = getBanco().getConexao().createStatement();
ResultSet rs = stm.executeQuery(sql);
if (rs.next() == true) { //Achou
reservaVO = new Reserva();
reservaVO.setCodReserva(rs.getInt("codReserva"));
reservaVO.setCodHospede(rs.getInt("codHospede"));
reservaVO.setCodApartamento(rs.getInt("codApartamento"));
reservaVO.setTipoReserva(rs.getString("tipoReserva"));
reservaVO.setDataReserva(rs.getDate("dataReserva"));
reservaVO.setDataEntrada(rs.getDate("dataEntrada"));
reservaVO.setDataSaida(rs.getDate("dataSaida"));
reservaVO.setHorarioEntrada(rs.getString("horarioEntrada"));
reservaVO.setHorarioSaida(rs.getString("horarioSaida"));
reservaVO.setQtdPessoas(rs.getString("qtdPessoas"));
reservaVO.setStatus(rs.getString("status"));
}
} catch (SQLException ex) {
ex.printStackTrace();
}
return reservaVO;
}
[\code]

Tela

[code]

Reserva reserva1 = new Reserva();
Calendar cal;
int d, m, a;//Variaveis para usar com calendario
reserva1 = (Reserva) reservaDAO.pesquisarCriterio(txtNomeHospede.getText());
if (reserva1.getCodReserva() != 0) {
} else {
if (!txtNomeHospede.getText().isEmpty()&& !txtNumero.getText().isEmpty()
&& !txtQtdPessoas.getText().isEmpty()) {
reserva1.setCodHospede(Integer.parseInt(txtNomeHospede.getText()));
reserva1.setCodApartamento(Integer.parseInt(txtNumero.getText()));
reserva1.setTipoReserva(String.valueOf(cmbTipoReserva.getSelectedItem
cal = dcDataReserva.getCalendar();
d = cal.get(Calendar.DAY_OF_MONTH);
m = cal.get(Calendar.MONTH);
a = cal.get(Calendar.YEAR) - 1900;
reserva1.setDataReserva(new Date(a, m, d));
cal = dcDataEntrada.getCalendar();
d = cal.get(Calendar.DAY_OF_MONTH);
m = cal.get(Calendar.MONTH);
a = cal.get(Calendar.YEAR) - 1900;
reserva1.setDataEntrada(new Date(a, m, d));
cal = dcDataSaida.getCalendar();
d = cal.get(Calendar.DAY_OF_MONTH);
m = cal.get(Calendar.MONTH);
a = cal.get(Calendar.YEAR) - 1900;
reserva1.setDataSaida(new Date(a, m, d));

reserva1.setHorarioEntrada(txtHorarioEntrada.getText());
reserva1.setHorarioSaida(txtHorarioSaida.getText());
reserva1.setQtdPessoas(txtQtdPessoas.getText());
reserva1.setStatus(String.valueOf(cmbStatus.getSelectedItem()));
reservaDAO.atualizar(reserva1);
limparCampos();
dcDataReserva.setCalendar(null);
dcDataEntrada.setCalendar(null);
dcDataSaida.setCalendar(null);
JOptionPane.showMessageDialog(this, "Dados da Reserva atualizado com sucesso!");
conReserva.executaSQL("select *from reserva");
try {
modeloTabelaReserva.setResult(conReserva.resultset);
} catch (SQLException ex) {
Logger.getLogger(JFCadProduto.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
[\code]
Responder