Problemas com jdbc

2 respostas
iltonk

pessoal bom dia, estou com uma dúvida para inserir em duas tabelas utilizando jdbc, pois preciso do id que é gerando automaticamente de uma das tabelas para dar um insert na outra. Utilizo o postgresql e eclipse. como fazer isso.

estou usando este método e não está funcionando, segue o método:

int codigoEndereco = -1;
		

		String sql2 = "insert into endereco (rua, cep, bairro, cidade, uf, numero) values (?,?,?,?,?,?) RETURNING (codigoendereco) ";

		try {
			PreparedStatement pstm1 = conexao.prepareStatement(sql2);

	
			pstm1.setString(1, endereco.getRua());
			pstm1.setString(2, endereco.getCep());
			pstm1.setString(3, endereco.getBairro());
			pstm1.setString(4, endereco.getCidade());
			pstm1.setString(5, endereco.getUf());
			pstm1.setString(6, endereco.getNumero());

			pstm1.executeUpdate();
			
			ResultSet rs = pstm1.executeQuery();
			if (rs.next()){
				
			codigoEndereco = rs.getInt("codigoendereco");
			}

Segue o Erro:

org.postgresql.util.PSQLException: Um resultado foi retornado quando nenhum era esperado.
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:339)
	at cliVet.DAO.UsuarioDAO.inserirUsuario(UsuarioDAO.java:37)
	at cliVet.testes.TexteBanco.main(TexteBanco.java:39)

obrigado a todos!!!

2 Respostas

iltonk

alguém pode me ajudar?

A

Opa... costumo fazer assim e funciona:

...
PreparedStatement pstm1 = conexao.prepareStatement(sql2, Statement.RETURN_GENERATED_KEYS); // linha modificada

...

pstm1.executeUpdate(); 
ResultSet rs = pstm1.getGeneratedKeys(); // linha acrescentada

if(rs.next()){
codigoEndereco = rs.getInt(1); // linha modificada
}
Criado 19 de novembro de 2012
Ultima resposta 19 de nov. de 2012
Respostas 2
Participantes 2