Problema com inserção de valores no BD

4 respostas
N
Como usar o PreparedStatement quando a chave primária da tabela é do tipo auto_increment?

Eu não posso setar o valor dessa chave primária, o banco é quem cuida disso, mas ao mesmo tempo, quando eu quero usar o PreparedStatement para setar os valores do segundo campo em diante

prepStatement.setString(2, strNome);

prepStatement.setFloat(3, fltSaldo);



etc

Quando eu faço isso o NetBeans exibe a mensagem de que não existe um valor para a coluna 1. Mas eu não preciso e nem devo setar esse valor manualmente, porque ele é do tipo auto_increment.
E agora? Como resolvo esse problema?

4 Respostas

P

quando vc montar a sua query, deixe q o primeiro campo seja o “nome” e o banco cuida de criar o seu id…

quando vc esta trabalhando com chaves numericas auto-increment isso deve ser transparente, vc nem se preocupa com isso, nem precisa saber os valores…

espero ter ajudado…se vc nao entendeu, manda seu codigo aih q eu ou alguem te ajuda melhor…

flw

J

Mas se você não quer inserir valor em um campo, simplesmente não coloque ele na clausula insert. O que deve estar acontecendo é que você não está especificando em quais campos você quer inserir os dados, então o padrão é todos os campos.

veja:

tabela "usuarios" (MySQL):

create table usuarios(id integer auto_increment primary key, nome varchar(50), login varchar(20), senha varchar(15));
PreparedStatement stmt = conexao.prepareStatement("INSERT INTO usuarios (nome, login, senha) VALUES (?, ?, ?)");

stmt.setString(1, "Jair");
stmt.setString(2, "jairelton");
stmt.setString(3, "123456");

stmt.executeUpdate();
N

jairelton, eu tentei fazer isso.
Mas mesmo assim ele se queixa que não especifiquei um valor para a coluna id…

P

manda o trace do erro pra gente poder te ajudar melhor…

vlw

Criado 3 de janeiro de 2007
Ultima resposta 4 de jan. de 2007
Respostas 4
Participantes 3