Adicionar Dados em sessão após Insert - JSP

Olá novamente!

Bom, estou com o seguinte problema. Eu quero, logo após realizar o insert de alguns dados, jogar esses mesmo dados em sessão, mas não no sentido de comando. Eu sei usar o session.setAttribute, tal e tal. A questão é como os dados estão sendo adicionados. No banco de dados, a tabela tem a PK como identidade - ou seja, eu não especifico. Assim sendo, eu insiro apenas os outros dados, como as FKs e afins. Mas, é claro, não tem como eu jogar só esses dados na sessão, porque eu vou precisar da ID também. Alguém tem alguma sugestão de como eu posso adicionar uma linha em uma coluna e logo em seguida recuperá-la?

No momento, estou usando um método muito gambiarra, que, claro, não funcionaria para um sistema com muito uso simultâneo. Possuo uma coluna na tabela em questão chamada “LAST_ADDED”, que, logo antes do insert, recebe um update para todas as linhas setando como 0. O último valor inserido recebe 1 (ou seja, o único). Logo após o insert, eu faço uma busca where LAST_ADDED = 1. Como eu disse, foi uma solução rápida e temporária, funciona mais ou menos, mas jamais funcionaria em um sistema maior, e já estou começando a ter problemas com isso. Portanto, preciso achar alguma coisa melhor.

Agradeço antecipadamente!

Att,
Aroldo

Cara … o que vc pode fazer é o seguinte, antes de vc inserir pega o proximo valor da PK e ja joga no seu jsp de cadastro … assim qdo for cadastrar vc ja tem a PK vinculada ao cadastro =) e nao vai ter problemas para recuperar esse cadastro feito.

Espero ter ajudado.

Abraços

Mas será que eu consigo garantir a integridade? Em um sistema com, sei lá, digamos 100 usuários simultâneos, não correria o risco de quebrar a referência? O problema é que não posso testar também, teria que ver em funcionamento.

Eu tenho um sistema de atendimento on-lie que esta vinculado varias clinicas de planos de saude.
Eu uso isso … eu meio que ja deixo “reservado” esse codigo .

Cara … esquece tudo o que te falei … tava com a cabeça em outro problema e te falei besteira … me desculpe.
Agora que vi o que realemnte precisa … deixa eu ver se entendi para não falar besteira novamente.
Você tem uma PK e algumas PKs certo?
O que vc quer é retornar tipo um protocolo depois do cadastro?

Abraços

Não cara, acho que você entendeu certo mesmo. O problema é esse mesmo, recuperar o dado que eu acabei de inserir, mas junto da PK, que é incrementada automaticamente.

Tenta o seguinte, retirar a PK como auto incremento e faz algo como o exemplo

[code] public Long getNroGuia() {

	Conexao conexao;
	String sql;
	String sql2;

	sql = " SELECT (par_guia + 1) nroguia FROM parametro ";
	sql2 = " UPDATE parametro SET par_guia = ? ";

	PreparedStatement stm;

	try {

		conexao = Conexao.getInstance();
		stm = conexao.getConexao().prepareStatement(sql);
		ResultSet res = null;

		Long nroGuia = null;

		synchronized (this) {
			res = stm.executeQuery();
			res.next();
			nroGuia = new Long(res.getLong("nroguia"));

			stm = conexao.getConexao().prepareStatement(sql2);
			stm.setLong(1, nroGuia.longValue());
			stm.execute();
		}

		res.close();
		stm.close();

		return nroGuia;

	} catch (SQLException e) {
		logger.error(e);
		return (new Long(0));
	} catch (Exception e) {
		logger.error(e);
		return (new Long(0));
	}

}[/code]

Assim ja tem uma PK e a proxima esta la garantida.
Abraços