Erro na conexão com o banco de dados em java

3 respostas
java
F
private void pesquisar_os() {
    //a linha abaixo cria uma caixa de entrada do tipo JOption Pane
    String num_os = JOptionPane.showInputDialog("Numero da OS");
    String sql = "select * from tbos where os= " + num_os;
    try {
        pst = conexao.prepareStatement(sql);
        rs = pst.executeQuery();
        if (rs.next()) {
            txtOs.setText(rs.getString(1));
            txtData.setText(rs.getString(2));
            //setando os radio buttons
            String rbtTipo = rs.getString(3);
            if (rbtTipo.equals("OS")) {
                rbtOs.setSelected(true);
                tipo = "OS";
            } else {
                rbtOrc.setSelected(true);
                tipo = "Orçamento";
            }
            cboOsSit.setSelectedItem(rs.getString(4));
            txtOsEquip.setText(rs.getString(5));
            txtOsDef.setText(rs.getString(6));
            txtOsServ.setText(rs.getString(7));
            txtOsTec.setText(rs.getString(8));
            txtOsValor.setText(rs.getString(9));
            txtCliId.setText(rs.getString(10));
            //evitando problemas
            btnOsAdicionar.setEnabled(false);
            txtCliPesquisar.setEnabled(false);
            tblClientes.setVisible(false);
        } else {
            JOptionPane.showMessageDialog(null, "OS não cadastrada");
        }
<strong>O erro esta nessa linha abaixo mais não consigo identificar o que está errado</strong>

} catch (com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException e) {

JOptionPane.showMessageDialog(null, “OS Invalida”);

<a href="//System.out.println">//System.out.println</a>(e);

} catch (Exception e2) {

JOptionPane.showMessageDialog(null, e2);

}

}

image

3 Respostas

rodriguesabner

Tira essa exception do mysql e deixa só a Exception e2

F

ele é um campo de buscar ele vai funcionar só com esse mesmo ?

pmlm

O num_os é realmente um número? Ou pode ter letras? Se tiver letras faltam ‘’ na tua query. Mas evitas esses probelmas se, ao usar PreparedStatement não fizeres concatenação dos parametros mas usares os placeholders:

String sql = "select * from tbos where os = ?";
try {
    pst = conexao.prepareStatement(sql);
    pst.setString(1, num_os);
    rs = pst.executeQuery();
Criado 3 de junho de 2020
Ultima resposta 3 de jun. de 2020
Respostas 3
Participantes 3