Cadastrar banco de dados

9 respostas
B

Como eu faço para validar os campos para saber
se existem dados
pq se nao tiver dados vou setar o campos como IS NULL

bveiculo.addActionListener(

new ActionListener()

{

public void actionPerformed(ActionEvent event)

{

try

{

String SQL = INSERT INTO tbveiculo (bdveiculo, " +

“bdanofabr, bdanomodelo, bdcor, bdmarca, bdmodelo, “+

“bdrenavan, bdchassi) Values (’” +

tveiculo.getText()+” ’ , '”+

tanofabr.getText()+” ’ , '"+

tanomodelo.getText()+" ’ , '"+

tcor.getText()+" ’ , '"+

tmarca.getText()+" ’ , '"+

tmodelo.getText()+" ’ , '"+

trenavan.getText()+" ’ , ‘"+

tchassi.getText()+"’)";

MeuState.executeUpdate(SQL);

JOptionPane.showMessageDialog(null,Veiculo cadastrado);
}
					      catch(SQLException ex)
					       {
						       if(ex.getMessage().equals("General error"))
						       JOptionPane.showMessageDialog(null,"Veiculo já Cadastrado");
						       else
						       JOptionPane.showMessageDialog(null,"Dado(s) invalido(s)");
					       }
				       }
			       }
		       );

9 Respostas

dsiviotti

Sua tabela não tem chave primária? Verifique se o valor da chave já está presente no banco antes de mandar gravar.

B

Sim tem chave primaria
mas eu quero verficar todos os campos itendi algo assim, exemplo:
if ( se campos tiver dados )
tveiculo.getText()+" ’ , '"+
else
tveiculo IS NULL

pq depois eu vou precisar de buscar pela chave primaria e verificar tais campos que vai estar vazio. e preencher

pcalcado

Oi, Lucas,

Por favor, utilize as tags “code”, isto simplifica a visualização de seu post :wink:

Pelo que entendi, você quer validar os dados do usuário, correto?

Seu primeiro erro está sendo em tratar os componentes visuais como dados da sua aplicação. Você precisa criar objetos e ir populando estes objetos com os dados inseridos.

Vamos supôr que exista uma aplicação com uma entidade Usuario. Usuario precisa ter uma senha maior de cinco caracteres, você faria:

public class Usuario{
...
public void setSenha(String novaSenha){
     if(novaSenha.length()>5) 
          this.senha=novasenha;
     else
          //Aqui coloque uma exceção, retorne um valor, sei lá...
}

Assim você evita quebrar a ‘invariante’, que é uma regra que não deve ser quebrada para um objeto ser válido [exemplo: um triângulo tem três vértices, não mais, não menos, se não não é triângulo!].

Evite concentrar sua aplicação no banco de dados, crie um modleo de negócios, pense nos dados persistidos depois. Algumas leituras sobre programação e projeto OO podem te ajudar bastante.

[]s

B

Eu intendi, mais ao mesmo tempo eu não intendi sua explicar, vou detalhar o que eu preciso…

tipow assim tem botao de cadastrar cliente certo
quando clicar nele ele vai pegar os dados do JTextField e gravar no banco de dados.
so que algum(s) campo(s) podem estar vazio , exemplo

Nome: Lucas Poltronieri
CPF:_______________
RG:42.621.283-81
Rua: ARarigboia
CEP:__-

ai quando eu for pegar os dados do campos cpf

eu faço uma verificação

if(cpf.getText().equals("")

CPF.getText()+" ’ , '"+

else(

query banco de dados do cpf IS NULL:

)
pcalcado

“BomBer_Rp”:
Eu intendi, mais ao mesmo tempo eu não intendi sua explicar, vou detalhar o que eu preciso…

Leia a última frase da minha assinatura :smiley:

Lucas, o problema é mais complexo. Você não deveria estar pegando coisas que o usuário digita, fazer um INSERT e jogar no banco.

Isto não é programação Orientada a Objetos. Como falei, no seu exemplo poderia ter:

public class Usuario{
 private String nome;
 private String cpf;
 private String rua;
 private String cep;

 //métodos para get e set (veja padrão javaBeans) em todos os atributos

}

Este objeto Usuario é quem recebe os dados do formulário. O que você faz, em relação ao banco de dados, é pegar o OBJETO usuario e colocá-lo numa tabela, você não deveria mandar CEP, CPF, etc. como coisas isoladas, isto não é um Objeto.

Como falei, tenta dar uma lida em alguns textos sobre programação OO, vai te esclarecer muitas coisas :wink:

[]s

Ironlynx
Vamos dar uma incrementada no exemplo do pcalcado(colher de chá):
public class Usuario{ 
private String nome; 
private String cpf; 
private String rua; 
private String cep;
 
public Usuario(){}

public Usuario(String nome,String cpf,String rua,String cep){
 this.nome=nome;
 this.cpf=cpf;
 this.rua=rua;
 this.cep=cep; 
}

//métodos para get e set (veja padrão javaBeans) em todos os atributos 
public String getNome(){
		  return this.nome;
		}
		
public String getCpf(){
		  return this.cpf;
		}

public String getRua(){
		  return this.rua;
		}
public String getCep(){
                                  return this.cep;
                                }
public void setNome(String nome){
		this.nome=nome;
		}
		 	
public void setCpf(String cpf){
		this.cpf=cpf;		
		}  
public void setRua(String rua){
                                this.rua=rua;
                                 }
public void setCep(String cep){
                               this.cep=cep;
                                }
 }
Feito esse nosso componente do usuário, Vc poderá usar esse componente assim para inserir no banco:
//use preparedStatement
 public static incluiNoBanco(Usuario usuario) throws Exception{
  Connection con=//recebera sua conexao com o bd
  PreparedStatement pstmt=con.preparedStatement("INSERT INTO USUARIO(NOME,CPF,RUA,CEP)VALUES (?,?,?,?)");
 
 pstmt.setString(1,usuario.getNome());
 pstmt.setString(2,usuario.getCpf());
 pstmt.setString(3,usario.getRua());
 pstmt.setString(4,usuario.getCep());
 pstmt.executeUpdate();
 pstmt.close();
 con.close();
 }
Agora tah tranq não? Leia os tutoriais de preparedStatement do guj!E de uma pesquisada ,tem muito sobre isso aqui!
B

è cara voce esta realmente certo
so que como sou um iniciante em programação
pois ja fui logo encarando java, (nunca tinha vido lingaguem de programação)

Intaum sinto muita dificudalde em Fazer Programas grandes e utizar POO
e tb sinto muita dificuldade em utilizar herança, apesar de ter lido um pouco de herança…

E estou aprendendo lendo livros que eu comprei…
E como estou com urgencia em desenvolver esse software (posteriormente eu arrumaria ele pois ficaria uma programa Orientado a Objeto , tal como seria mais rapido , mais façil de coorigir)…

Valew mesmo

B

Ironlynx
sim compriendi

so que mesmo assim as Strings tem que receber os valores dos
JTextFields, ai como faço isso?

Ironlynx

Ops,foi malz,soh agora q li isso…mas eh simples…tipo

Lembre-se de converter para os tipos necessários qdo for preciso,por exemplo: Uma senha q no construtor eh declarada com string,se for pega por um senha.getPassword() será necessário fazer new String(senha.getPassword()) e por aí vai… :wink:

Criado 10 de julho de 2004
Ultima resposta 12 de jul. de 2004
Respostas 9
Participantes 4