Ir ao conteúdo
  • Cadastre-se

Problema com update em java


Posts recomendados

Boa tarde, não estou conseguindo atualizar os dados no banco atraves do java, tenho na minha classe DAO o metódo update e o pesquisaCriterio e chamo no meu form, quando tento atualizar ele dá erro esse com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Adriana Ferreira Order by codReserva' at line 1
 at DAO.ReservaDAO.pesquisarCriterio(ReservaDAO.java:196)
 at GUI.JFCadReserva.btnAtualizarActionPerformed(JFCadReserva.java:740)

 

Minha DAO:

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" ;

        //Abre conexao com o banco
        getBanco().abrir();
        try {
            Statement stm = getBanco().getConexao().createStatement();
            //Faz a leitura no banco
            ResultSet rs = stm.executeQuery(sql);
            //Verifica se achou
            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;
    }

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;
        }

    }

Form:

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()));//converte em opção selecionada em String

                cal = dcDataReserva.getCalendar();
                d = cal.get(Calendar.DAY_OF_MONTH);//dia de um mes
                m = cal.get(Calendar.MONTH);//o mes
                a = cal.get(Calendar.YEAR) - 1900;//o ano com o formato correto
                reserva1.setDataReserva(new Date(a, m, d));

                cal = dcDataEntrada.getCalendar();
                d = cal.get(Calendar.DAY_OF_MONTH);//dia de um mes
                m = cal.get(Calendar.MONTH);//o mes
                a = cal.get(Calendar.YEAR) - 1900;//o ano com o formato correto
                reserva1.setDataEntrada(new Date(a, m, d));

                cal = dcDataSaida.getCalendar();
                d = cal.get(Calendar.DAY_OF_MONTH);//dia de um mes
                m = cal.get(Calendar.MONTH);//o mes
                a = cal.get(Calendar.YEAR) - 1900;//o ano com o formato correto
                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()));//converte em opção selecionada em String

                reservaDAO.atualizar(reserva1);
                limparCampos();
                dcDataReserva.setCalendar(null);//limpa campo tipo Date calendar
                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);
                }

            }
        }

Tenho duas fk que estão cadastras no banco, quem puder ajudar agradeço.

Link para o comentário
Compartilhar em outros sites

O erro não é de "update", o erro ocorre em:

DAO.ReservaDAO.pesquisarCriterio(ReservaDAO.java:196)

 

Agora, observe estes 2 trechos extraídos de locais diferentes do seu código, existe erro de sintaxe na primeira linha:

+ " WHERE r.codReserva " + criterio + " Order by codReserva" ;
+ "' WHERE codReserva = '" + reservaVO.getCodReserva() + "'";

 

Link para o comentário
Compartilhar em outros sites

Cweiler desculpa a demora pra responder, fiz a alteração que sugerio mas apresentou esse erro:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at DAO.ReservaDAO.pesquisarCriterio(ReservaDAO.java:193)
	at GUI.JFCadReserva.btnAtualizarActionPerformed(JFCadReserva.java:767)
	at GUI.JFCadReserva.access$1000(JFCadReserva.java:25)
	at GUI.JFCadReserva$11.actionPerformed(JFCadReserva.java:459)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
	at java.awt.Component.processMouseEvent(Component.java:6527)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
	at java.awt.Component.processEvent(Component.java:6292)
	at java.awt.Container.processEvent(Container.java:2234)
	at java.awt.Component.dispatchEventImpl(Component.java:4883)
	at java.awt.Container.dispatchEventImpl(Container.java:2292)
	at java.awt.Component.dispatchEvent(Component.java:4705)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
	at java.awt.Container.dispatchEventImpl(Container.java:2278)
	at java.awt.Window.dispatchEventImpl(Window.java:2739)
	at java.awt.Component.dispatchEvent(Component.java:4705)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746)
	at java.awt.EventQueue.access$400(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:697)
	at java.awt.EventQueue$3.run(EventQueue.java:691)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.awt.EventQueue$4.run(EventQueue.java:719)
	at java.awt.EventQueue$4.run(EventQueue.java:717)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:716)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Sou novata em java, sei que esse erro é de tentou acessar um atributo ou chamar um método de uma variável que não foi inicializada mas não sei como inicializar. 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...