Una de las formas de como podrías obtener un número secuencial para
luego usar como clave primaria en una aplicación es usando
sencuenciadores. Un secuenciador (sequence) es un objeto que permite
generar números secuenciales de forma tal que cada vez que "consultas"
el secuenciador te devuelve un nuevo número.
No se que base de dato estarás utilizando, pero en oracle, la
sentencia para crear un sequence es la siguiente:
CREATE SEQUENCE vendedor_seq
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 20;
Al correr esta sentencia, te creará en la base de datos una objeto del
tipo sequence el cual generará números que comenzarán en 1 y que se
incrementarán de a una unidad.
Luego, en el código java, cuando quieras usar dicho valor (por ejemplo
en un insert) harías lo siguiente:
INSERT INTO vendedor (vendedor_id, nombre)
VALUES (vendedor_seq.nextval, 'Juan Perez');
Una forma de generar el número de antemano en lugar de mandarlo en el
insert es:
SELECT vendedor_seq.nextval
FROM dual
con lo cual, si quisieras (vaya a saber por que motivo) podrías
primero hacer una query para generar el id y luego mandar ese id en la
sentencia del insert
donde dual es una "tabla imaginaria" que provee Oracle para hacer
consultas y la cual siempre devuelve una sola fila.
Si usas MySql, podes directamente definir la columna correspondiente
al id como de tipo auto incremental, de forma tal que en cada nuevo
insert le asigne un nuevo id.
Sería mas o menos asi:
CREATE TABLE vendedor
(
vendedor_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY (vendedor_id),
nombre VARCHAR(30) NOT NULL
);
INSERT INTO vendedor (vendedor_id,nombre) VALUES (NULL,'Juan Perez');
Espero te sirva de ayuda.
Saludos