Gravar campo Date, int e double vazio

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
:smiley:
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? :wink:

eu vo testa aqui e te falo inton guenta aee :smiley:

[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? :wink: [/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 :smiley:
vlwww chega em casa vou testar aqui to sem o projeto
vlwww

eu uso o Hibernate! :wink: 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 :smiley:

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 !