Boa tarde…
pessoal para gravar dados do tipo date, double ou int é necessario tratar isso no banco ou na aplicação??
pois c eu deixo uma data sem digita ai quando vo grava ele me manda uma mensagem no console … null
alguem poderia me ajudar?
vlw
Boa tarde…
pessoal para gravar dados do tipo date, double ou int é necessario tratar isso no banco ou na aplicação??
pois c eu deixo uma data sem digita ai quando vo grava ele me manda uma mensagem no console … null
alguem poderia me ajudar?
vlw
rapaz, nao da pra saber bem oque q tu querendo fazer, mas pelo jeito vc tem que tratar isso na aplicação…tipo, manda ai um exemplo do teu codigo…
tpw quando vc vai gravar um campo do tipo date e vc naum preenche ele…
vc consegue gravar??? eu não consigo gravar enquanto o campo naum for prrenchido corretamente o.O ai queria saber c da pa gravar ele vazio saka
vlwww
Para gravar vazio vc deve ter modelado apropriadamente esta coluna no banco, ou seja a coluna deve aceitar null.
No caso eu costumo usar método setNull(), tipo faço um if no valor, se for nulo ou branco eu uso o setNull, pq normalmente vc não consegue fazer um setInt(null).
if(data == null)
pstmt.setNull(1,Types.DATE);
else
pstmt.setDate(1, data);
Era isso?
eu vo testa aqui e te falo inton guenta aee
[quote=fausto]Para gravar vazio vc deve ter modelado apropriadamente esta coluna no banco, ou seja a coluna deve aceitar null.
No caso eu costumo usar método setNull(), tipo faço um if no valor, se for nulo ou branco eu uso o setNull, pq normalmente vc não consegue fazer um setInt(null).
if(data == null)
pstmt.setNull(1,Types.DATE);
else
pstmt.setDate(1, data);
Era isso? [/quote]
em que camada que eu faria esse if??? na camada CTR ou na VIEW ou na DAO :oops:
Você não está usando PreparedStatement? Está usando o hibernate?
No caso seria na DAO
to usando o Eclipse e sim uso praparedstatement inton é no dao mesmo rsrsrs
vlwww chega em casa vou testar aqui to sem o projeto
vlwww
eu uso o Hibernate! acho bem mas simples…
e isso é feito na DAO
este é o meu DAO
[code]public boolean inserirFuncionario(FuncionarioDTO funcionarioDTO) {
try {
Conexao.ConnectDB();
Statement stmt = Conexao.con.createStatement();
String Sql = "Insert into Funcionario(nome, cpf, rg, ctps, datanascimento, "
+ "sexo, dataadmissao, datademissao, cargo, endereco, complemento, "
+ "bairro, cidade, uf, cep, telres, telcel, email, comissao, usuario, "
+ "senha, situacao, codfunc) values( "
+ "'"
+ funcionarioDTO.getNome()
+ "', "
+ "'"
+ funcionarioDTO.getCpf()
+ "', "
+ "'"
+ funcionarioDTO.getRg()
+ "', "
+ "'"
+ funcionarioDTO.getCtps()
+ "', "
+ "'"
+ funcionarioDTO.getDatanascimento()
+ "', "
+ "'"
+ funcionarioDTO.getSexo()
+ "', "
+ "'"
+ funcionarioDTO.getDataadmissao()
+ "', "
+ "'"
+ funcionarioDTO.getDatademissao()
+ "', "
+ "'"
+ funcionarioDTO.getCargo()
+ "', "
+ "'"
+ funcionarioDTO.getEndereco()
+ "', "
+ "'"
+ funcionarioDTO.getComplemento()
+ "', "
+ "'"
+ funcionarioDTO.getBairro()
+ "', "
+ "'"
+ funcionarioDTO.getCidade()
+ "', "
+ "'"
+ funcionarioDTO.getUf()
+ "', "
+ "'"
+ funcionarioDTO.getCep()
+ "', "
+ "'"
+ funcionarioDTO.getTelres()
+ "', "
+ "'"
+ funcionarioDTO.getTelcel()
+ "', "
+ "'"
+ funcionarioDTO.getEmail()
+ "', "
+ "'"
+ funcionarioDTO.getComissao()
+ "', "
+ "'"
+ funcionarioDTO.getUsuario()
+ "', "
+ "'"
+ funcionarioDTO.getSenha()
+ "', "
+ "'"
+ funcionarioDTO.getSituacao()
+ "', "
+ "'"
+ funcionarioDTO.getCodfunc() + "')";
System.out.println(Sql);
stmt.execute(Sql);
Conexao.con.commit();
Conexao.CloseDB();
return true;
} catch (Exception e) {
System.out.println(e.getMessage());
return false;
}
}[/code]
eu tentei passar a data como null mais nem da quando vo inserir c a data estiver vazia ele retorna no console assim:
null e naum grava
cara faz o seguinte…se tu conseguir, tu me avisa aqui no forum…se nao eu vou chegar em ksa umas 21:30 e de la eu dou uma olhada nos meus codigos de qaundo eu usava JDBC, mas pelo oque eu to vendo aqui…acho que falta fazer alguma coisa antes de fechar a conexao…
vou te mandar uma classes de conexao com banco que eu fazia, pq assim nao precisava ficar refazendo pra cada projeto…cria um .jar e parametriza pra tu dizer so o nome do banco, usuario, senha…fica bem mais agil para os proximos projetos, istoé, se vc nao mudar pra hibernate…
boa sorte…e fico no aguardo!!!
aham ok c eu consegui eu aviso sim
vlwww cara
up
E aí Naruto, tudo bem ?
Então, vendo seu código, tenho duas dicas pra vc:
1 - Utiliza PreparedStatement ao invés de utilizar o Statement. Tem um tópico de exemplo dele aqui no GUJ
http://www.guj.com.br/posts/list/40126.java
Statement tem alguns “pequenos” problemas (SQL Injection, por exemplo ).
2 - Toda vez que você criar a conexão e tentar executar essa query, se ocorrer um erro (como deve estar acontecendo em algum dos métodos que retornam data no seu código), a conexão NÃO será fechada pois o erro vai ocorrer ANTES da linha 86. Como essa linha não será executada, a conexão criada não será finalizada.
Para resolver esse problema, feche a conexão dentro do block finally:
...
Conexao.con.commit();
return true;
} catch (Exception e) {
System.out.println(e.getMessage());
return false;
}
finally {
Conexao.CloseDB();
}
}
Em relação ao problema que você está tendo do null pointer pode ser por dois motivos:
1 - Essa coluna do banco não aceita valores nulos.
2 - Pode ser que a instância do objeto Date não está sendo inicializado e ao chamar getDataXXX da null pointer mesmo.
Blz ?
Se puder, coloca a classe Funcionário pra ver se a gente pode ajudar mais vc !
[]'s !