Por Favor será que alguém poderia me
dar uma ajuda? Eu não estou conseguindo
pegar a chave primária da minha tabela
endereco:
CREATE TABLE Endereco (
idEndereco INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
rua VARCHAR(20) NOT NULL,
numero INTEGER UNSIGNED NOT NULL,
bairro VARCHAR(30) NOT NULL,
cidade VARCHAR(20) NOT NULL,
estado VARCHAR(20) NOT NULL,
cep VARCHAR(9) NULL,
uf VARCHAR(2) NULL,
PRIMARY KEY(idEndereco)
)
TYPE=InnoDB;
Mas eu não estou conseguindo retornar
a chave primária idEndereco através do meu
código Java:
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());
//Retorna o id do endereco cadastrado
ps = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
ps.executeUpdate();
ResultSet rs = ps.getGeneratedKeys();
rs.next();
int id = rs.getInt(1);
rs.close();
//Não retorna o idEndereco, como eu devo fazer para retornar
//a chave primária?
return id;
}
catch (Exception sqle) {
throw new LAFQADaoException("Erro ao inserir dados" + sqle);
} finally {
try {
ConnectionFactory.closeconnection(conn, ps);
}
catch (SQLException ex) {
Logger.getLogger(ProdutorDao.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
[]'s.

