JSF / Inserir data no Banco

4 respostas
O

Boa Tarde, Pessoal !

Sou no JSF e estou com o seguinte problema…

Estou tentando inserir uma campo do tipo util.date no banco, porém está dando certo…

Eu pesquisei sobre o assunto, verifiquei que eu deveria conversar para sql.Date, porém quando eu
instancio uma veriavel com a classe sql.Date dá erro pedindo para retornar um long no campo data…

Enfim estou meio perdido, vou passar todos os scripts, caso algume saiba resolver, ou
tenha algum material de apoio. Eu agradeço.

import java.util.Date;

public class Produto {
	
	
	private int codigoProduto;
	private short quantidade;
	private double valorUnitario;
	private String cartaoCredito;
	private Date dataPedido;
	
	public Produto(int codigoProduto,short quantidade, double valorUnitario, String cartaoCredito,Date dataPedido){
		this.setCodigoProduto(codigoProduto);
		this.setQuantidade(quantidade);
		this.setValorUnitario(valorUnitario);
		this.setCartaoCredito(cartaoCredito);
		this.setDataPedido(dataPedido);
	}
public void salvar(Produto produto) throws Exception{
			PreparedStatement ps = null;
			Connection conn;
		
			
			 
			
			try {
				String SQL = "insert into produto(quant,vlunit,cartaocredito,datapedido)"+"values (?,?,?,?)";
				conn = this.conn;
				ps = conn.prepareStatement(SQL);
				ps.setInt(1,produto.getQuantidade());
				ps.setDouble(2,produto.getValorUnitario());
				ps.setString(3,produto.getCartaoCredito());
				Date data = new Date(produto.getDataPedido());
				ps.setDate(4,data);
				ps.executeUpdate();
				
				
				
			}catch (SQLException sqle){
			throw new 
				Exception("Errp ao inserir dados "+ sqle);
		}

Obrigado

4 Respostas

F

Olá ozjunior!

Você deve converter seu java.util.Date para um java.sql.Date. Veja um exemplo:

java.util.Date data = new java.util.Date();
java.sql.Date dataBanco = new java.sql.Date(data.getTime);

O método getTime retorna um long contendo o valor da data em milisegundos.

Abraços!

O

Boa Tarde,
Então com o GetTime funcionou ele está gravando no banco, porém ele
grava a data atual, eu quero que grave o valor que está sendo preenchido
meu formulário…

Date data = new Date(produto.getDataPedido());

Pode me mostrar como consigo, ou onde consigo um exemplo.

Obrigado

O

Niguem ?

O

Deu certo aqui.

da seguinte forma :

java.sql.Date dataBanco = new java.sql.Date(produto.getDataPedido().getTime());

mas eu não entendi, este getTime() , ele retorna um Long é isto ?

Criado 8 de março de 2012
Ultima resposta 12 de mar. de 2012
Respostas 4
Participantes 2