Banco de Dados + Java

2 respostas
ricardocomp

Olá Pessoal,
eu estou com uma dúvida aqui
não consigo retornar o id do endereco
depois de salvar no banco alguém sabe
como que eu devo fazer para retornar
o id do endereco que é AUTOINCREMENT?

public int salvarEndereco(Endereco endereco) throws LAFQADaoException {

        PreparedStatement ps = null;
        Connection conn = null;

        if (endereco == null)
            throw new LAFQADaoException("o valor passado não pode ser lido");

        try {

            String sql = "INSERT INTO endereco(rua, numero, bairro, " +
                    "cidade, estado, cep, uf) VALUES(?,?,?,?,?,?,?)";

            conn = this.conn;
            ps = conn.prepareStatement(sql);
            ps.setString(1, endereco.getRua());
            ps.setInt(2, endereco.getNumero());
            ps.setString(3, endereco.getBairro());
            ps.setString(4, endereco.getCidade());
            ps.setString(5, endereco.getEstado());
            ps.setString(6, endereco.getCep());
            ps.setString(7, endereco.getUf());
            ps.executeUpdate();
            //Retorna o id do endereco cadastrado
            return ps.; // ???
        }
        catch (Exception sqle) {
            throw new LAFQADaoException("Erro ao inserir dados\n" + sqle);

        } finally {
            try {
                ConnectionFactory.closeconnection(conn, ps);
            }
            catch (SQLException ex) {
                Logger.getLogger(ProdutorDao.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }

[]'s.

2 Respostas

L

Dá uma olhada nesse link e veja se te ajuda: http://java.sun.com/javase/6/docs/api/java/sql/Statement.html#getGeneratedKeys().

Andre_JavaWorld
Bom, primeiramente um conselho, hoje em dia sao poucos os que usam jdbc para trabalhar com banco de dados, mas num periodo inicial, é sempre bom aprender a usar, porem nao se prenda... comece a procurar ferramentas como hibernate que irao te ajudar muito neste aspecto, mas voltando a sua questao, para pegar um id que é auto incrementavel com o jdbc, voce precisa primeiro pegar o registro, depois pegar o getId da sua tabel (se voce estiver usando javabeans), ficaria algo assim sua query "select * from tabela where name = "x"), uma vez pego o registro, voce pode chamar por exemplo, rs.getLong("id"); ou se atribuir ele diretamente para sua classe javabean (se voce estiver usando orientacao a objetos) simplesmente faca minhaclasse.getId();

Sei que ficou meio complicado, mas precisando de mais explicacoes envia uma mp que posso te ajudar!

Bons Estudos

André

Criado 18 de setembro de 2009
Ultima resposta 19 de set. de 2009
Respostas 2
Participantes 3