O PreparedStatment está errado.
Não testei, mais co código abaixo deve funcionar:
publicvoidGravar(){Connectioncon=Conexao.getConnection();Stringsql="insert into aparelho(CodApar,Descricao,EspTec)values(?,?,?);";PreparedStatementps;try{ps=con.prepareStatement(sql);ps.setString(1,txtCodAp.getText());ps.setString(2,txtNomeAp.getText());ps.setString(3,txtModAp.getText());ResultSetrs=ps.executeQuery();JOptionPane.showMessageDialog(null,"CADASTRO EFETUADO COM SUCESSO!!","AVISO",JOptionPane.INFORMATION_MESSAGE);}catch(SQLExceptione){JOptionPane.showMessageDialog(null,"gravação","AVISO",JOptionPane.ERROR_MESSAGE);}catch(Exceptione){JOptionPane.showMessageDialog(null,"erro na gravação","AVISO",JOptionPane.ERROR_MESSAGE);}}
Nicolas_Fernandes
Olá, MarcoRocha!
Tudo bem?
Bom, duas coisas a dizer:
Leia o tutorial para postagem no fórum. Quando você for postar um código, coloque-o entre as tags code, pois ele ficará assim:
Esta é minha Tag Code!
Vamos lá…
Você deve colocar os parâmetros em seu PreparedStatement antes de executá-lo!
Faça do seguinte modo:
publicvoidGravar(intCodApar,StringDescricao,intEspTec){try{Connectioncon=Conexao.getConnection();Stringsql="Insert Into Aparelho(CodApar,Descricao,EspTec) Values (?, ?, ?)";// Perceba que, para trabalhar com parâmetros, faço uso da ?.PreparedStatementps=con.prepareStatement(sql);ps.setInteger(1,CodApar);ps.setString(2,Descricao);ps.setInteger(3,EspTec);ResultSetrs=ps.execute();// Para comandos de inserção, usa-se o método execute().JOptionPane.showMessageDialog(null,"CADASTRO EFETUADO COM SUCESSO!!","AVISO",JOptionPane.INFORMATION_MESSAGE);}catch(SQLExceptione){JOptionPane.showMessageDialog(null,"gravação","AVISO",JOptionPane.ERROR_MESSAGE);}catch(Exceptione){JOptionPane.showMessageDialog(null,"erro na gravação","AVISO",JOptionPane.ERROR_MESSAGE);}}