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?
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
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):
[code]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();[/code]
jairelton, eu tentei fazer isso.
Mas mesmo assim ele se queixa que não especifiquei um valor para a coluna id…
manda o trace do erro pra gente poder te ajudar melhor…
vlw