Cadastrar dados nulos no bd

6 respostas
B
Pessoal

fiz um cadastro

e verifico se o usuario digitou algo no campo se digitou

pego esse valor e cadastro ele no banco de dados

so que quando o usuario não digita nada eu coloco

como null ( nulo, vazio);

so que setar como null nao esta dando certo

codigo abaixo;
try
						       {
							       String sql;
							       sql = "INSERT INTO tbveiculo (bdveiculo, " +
							       "bdanofabr, bdanomodelo, bdcor, bdmarca, bdmodelo, "+
							       "bdrenavan, bdchassi) Values ('";
							       if(!tveiculo.getText().equals(""))
							        {
								        sql = sql+ tveiculo.getText()+" ' , '";
						            }
						           else
						            {
							            sql = sql +  "' null, '" ;  // (bdveiculo IS NULL)";
							            //MeuState.executeUpdate(sql);
                                    }
                                   if(!tanofabr.getText().equals(""))
                                    {
	                                    sql = sql+ tanofabr.getText()+" ', '";
                                    //MeuState.executeUpdate(sql);
                                    }
                                   else
                                    {
	                                    sql = sql + "' ,null '";  //(bdanofabr IS NULL)";
	                                    //MeuState.executeUpdate(sql);
                                    }
                                   if(!tanomodelo.getText().equals(""))
                                    {
	                                    sql = sql + tanomodelo.getText()+" ', '";
							       //MeuState.executeUpdate(sql);
						            }
						           else
						            {
							            sql = sql + "null," ; // (bdanomodelo IS NULL)";
							            //MeuState.executeUpdate(sql);
						            }
						           if(!tcor.getText().equals(""))
						            {
							            sql = sql+ tcor.getText()+" ', '";
							       //MeuState.executeUpdate(sql);
						            }
						           else
						            {
							            sql = sql + "'null '"; //(bdcor IS NULL)";
							            //MeuState.executeUpdate(sql);
						            }
						           if(!tmarca.getText().equals(""))
						            {
							            sql = sql+ tmarca.getText()+" ', '";
							       //MeuState.executeUpdate(sql);
						            }
						           else
						            {
							            sql = sql + "' null, '"; //(bdmarca IS NULL)";
							            //MeuState.executeUpdate(sql);
						            }
						           if(!tmodelo.getText().equals(""))
						            {
							            sql = sql+ tmodelo.getText()+" ', '";
							       //MeuState.executeUpdate(sql);
						            }
						           else
						            {
							            sql = sql + "' null, '"; //(bdmodelo IS NULL)";
							            //MeuState.executeUpdate(sql);
						            }
						           if(!trenavan.getText().equals(""))
						            {
							            sql = sql+ trenavan.getText()+" ', '";
							       //MeuState.executeUpdate(sql);
						            }
						           else
						            {
							            sql = sql+ "' null, '"; //(bdrenavan IS NULL)";
							            //MeuState.executeUpdate(sql);
						            }
						           if(!tchassi.getText().equals(""))
						            {
							            sql = sql+ tchassi.getText()+"' )";
							       //MeuState.executeUpdate(sql);
						            }
						           else
						            {
							            sql = sql+ "' null) "; //(bdchassi IS NULL)";
							            //MeuState.executeUpdate(sql);
						            }

6 Respostas

kartler

Teu código tá meio que confuso seria bom vc usar um Bean e passar ele para o método responsavel pelo cadastro, e fazer a validação dele. se este valor estiver vindo de um JTextField para setar um valor pra ele é tveiculo.setText("OQUE VC QUIZER");

danieldestro

Ao invés de usar Statement, use PreparedStatement. Você pode fazer assim:

String sql ="INSERT INTO TAB1 (CAMPA,CAMPB) VALUES(?,?)"; PreparedStatement ps = conn.prepareStatement( sql ); ps.setObject( 1, "algo" ); ps.setObject( 2, null ); ps.executeUpdate( );

Neste caso, eu estaria inserindo um registro na tabela TAB1, atribuindo o valor “algo” para o campo CAMPA e NULL para o campo CAMPB.

É isso aí!

B

Muito obrigado pela ajuda,

mais ja resolvi do meu modo mesmo…

ficou assim:

if(!tveiculo.getText().equals(""))

{

sql = sql+ "  " + tveiculo.getText()+"  ,  ;

}

else

{

sql = sql +  " null, " ;  // (bdveiculo IS NULL)”;

o problemas estava nas aspas

danieldestro

Isso é podre, mas funciona…

brlima

:lol: :roll: :evil:
Use preparedStatemant…
Se nao me engando alguns bancos ( oracle ) assumi nulo quando vc passa branco, ou seja, campo1 = ‘’ é a mesma coisa que capmo’ = NULL…

Certo?

danieldestro

Afff, brlima, Deus me livre…

Na pior das hipóteses faça como nosso amigo fez aí pra cima.
Usar CAMPO=’’ para NULL, NUNCA.

Use mesmo PreparedStatement.

Criado 11 de julho de 2004
Ultima resposta 12 de jul. de 2004
Respostas 6
Participantes 4