Oi, pessoal tudo bem com vcs?
Estou desenvolvendo um projeto utilizando o banco de dados postgresql e estou com um pequeno problema, tenho um método para inserir dados no postgre. Também tenho outro método para pesquisar os dados informados para ver se o mesmo já não foi cadastrado.
public Funcionario acharFuncionario(String codigo)throws ConexaoErroException, SQLException{
String query = "Select codigo, nome, rua, cidade, bairro, uf, cep, rg from funcionario where codigo = '?' and estatus = '1'";
PreparedStatement smt = con.prepareStatement(query);//a variável con é do tipo Connection do pacote java.sql.Connection.
try{
smt.setString(1, codigo);//no código sql acima o campo código é o primeiro, aqui estou setando o valor para a pesquisa, se o campo codigo estivesse em qualquer ordem ele dá o mesmo erro diz que ele está fora do intervalo.
ResultSet set = smt.executeQuery();
if(set.next()){
funcionario = new Funcionario();
funcionario.setCodigo(set.getString("codigo"));
...
...
...
}
}catch(SQLException ex){
}
}//Método para achar os dados do funcionário para checar se o mesmo já está cadastrado.
public void inserirFuncionario(Funcionario funcionario)throws ConexaoErroException, SQLException{
String query = "Insert into funcionario (codigo, ...) Values('?', ...)";
PreparedStatement smt = con.prepareStatement(query);
try{
smt.setString(1, funcionario.getCodigo());
...
...
...
}catch(SQLException ex){
throw new ConexaoErroException("Erro");
}
}
O problema é que fica dando o erro dizendo que o índice está fora do intervalo, não importa o valor que eu coloque, dá sempre o mesmo erro, no método de acharFuncionario.
Na instrução sql pelo menos no banco eu tinha que colocar as simples nos valores, aqui eu tive que fazer a mesma coisa.