Como retornar último ID Inserido no Banco

Bom dia pessoal,

Estou tentando efetuar um SELECT no BD e estou apanhando, retorna que a coluna "idAposta" não existe, e no BD ela existe. Vejam o código
public void pegarProximoId() {
		// List<Aposta> apostas = new ArrayList<Aposta>();
		// PreparedStatement stmt = this.connetion.
		// prepareStatement("select * from contatos");

		String sql = "select last_insert_id() + 1 from aposta limit 1";

		try {
			PreparedStatement stmt = this.connection.prepareStatement(sql);
			ResultSet rs = stmt.executeQuery();

			while (rs.next()) {
				Aposta aposta = new Aposta();
				aposta.setIdAposta(rs.getLong("idAposta"));
			}

			rs.close();
			stmt.close();
			//connection.close();

		} catch (SQLException e) {
			throw new RuntimeException(e);
		}

O que pode ser feito, gostaria que “pegar” o último idAposta…

Valew!

Se for só pra pegar o último, tente select max(idAposta) from apostas

Roselito, adicionei algumas linha na própria Dao e deu certo, obrigado pela atenção!

[code]ResultSet rs = stmt.getGeneratedKeys();
rs.next();

		long idGerado = rs.getLong(1);
		aposta.setIdAposta(idGerado);[/code]

Veja o código completo, sugestões são bem vindas!

public class ApostaDao {
	private Connection connection;

	public ApostaDao() throws SQLException {
		this.connection = new ConnectionFactory().getConnection();
	}

	public void adicionar(Aposta aposta) {
		String sql = "insert into aposta (usuarioId, concursoId, grupoId, dataAposta, apostaAtiva) "
				+ "values (?,?,?,?,?)";
		try {

			// PreparedStatement para inserção do dados
			PreparedStatement stmt = this.connection.prepareStatement
					(sql, Statement.RETURN_GENERATED_KEYS);

			// seta os valores, busca os valores que estão na classe Usuario e
			// os armazena na variavel stmt)
			//stmt.setLong(1, aposta.getIdAposta());
			stmt.setLong(1, aposta.getUsuarioId());
			stmt.setLong(2, aposta.getConcursoId());
			stmt.setLong(3, aposta.getGrupoId());
			stmt.setDate(4, new Date(aposta.getDataAposta().getTimeInMillis()));
			stmt.setBoolean(5, aposta.getApostaAtiva());

			// executa, armazena os valores no BD
			stmt.execute();
			
			// pesquisa os ID
			ResultSet rs = stmt.getGeneratedKeys();
			rs.next();
			
			long idGerado = rs.getLong(1);
			aposta.setIdAposta(idGerado);
			
			stmt.close();

		} catch (SQLException e) {
			throw new RuntimeException(e);
		}
	}