1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Java web, problemas com conversão date.

Pessoal,

Boa tarde!

Estou com problemas para inserir campos date do banco de dados. Estou usando Java 7, JSF 2.0, Server Websphere V8.5 Liberty, Banco de dados DB2 V10.5

Segue as telas da aplicação abaixo:

Funcionario.java

package com.ctrlpmo.model.entities;

import java.io.Serializable;
import java.sql.Date;
import java.util.Calendar;

public class Funcionario implements Serializable {

private static final long serialVersionUID = 1L;

    private int idf;
    private String nome;
    private String matricula;
    private String projeto;
    private String contrato;
    private String area;
    private String subteam;
    private String email_shell;
    private String email_ibm;
    private String id_shell;
    private Calendar start_date;
    private Calendar end_date;
    private Calendar acesso_porta;

    public int getIdf() {
        return idf;
    }
    public void setIdf(int idf) {
        this.idf = idf;
    }
    public String getNome() {
        return nome;
    }
    public void setNome(String nome) {
        this.nome = nome;
    }
    public String getMatricula() {
        return matricula;
    }
    public void setMatricula(String matricula) {
        this.matricula = matricula;
    }
    public String getProjeto() {
        return projeto;
    }
    public void setProjeto(String projeto) {
        this.projeto = projeto;
    }
    public String getContrato() {
        return contrato;
    }
    public void setContrato(String contrato) {
        this.contrato = contrato;
    }
    public String getArea() {
        return area;
    }
    public void setArea(String area) {
        this.area = area;
    }
    public String getSubteam() {
        return subteam;
    }
    public void setSubteam(String subteam) {
        this.subteam = subteam;
    }
    public String getEmail_shell() {
        return email_shell;
    }
    public void setEmail_shell(String email_shell) {
        this.email_shell = email_shell;
    }
    public String getEmail_ibm() {
        return email_ibm;
    }
    public void setEmail_ibm(String email_ibm) {
        this.email_ibm = email_ibm;
    }
    public String getId_shell() {
        return id_shell;
    }
    public void setId_shell(String id_shell) {
        this.id_shell = id_shell;
    }
    public Calendar getStart_date() {
        return start_date;
    }
    public void setStart_date(Calendar start_date) {
        this.start_date = start_date;
    }
    public Calendar getEnd_date() {
        return end_date;
    }
    public void setEnd_date(Calendar end_date) {
        this.end_date = end_date;
    }
    public Calendar getAcesso_porta() {
        return acesso_porta;
    }
    public void setAcesso_porta(Calendar acesso_porta) {
        this.acesso_porta = acesso_porta;
    }

}

FuncionarioDAO.java:

package com.ctrlpmo.model.dao;

import java.util.List;

import com.ctrlpmo.model.entities.Funcionario;

public interface FuncionarioDAO {

    public abstract void create(Funcionario funcionario);

    public abstract void delete(int idFuncionario);

    public abstract void update(Funcionario funcionario);

    public abstract List<Funcionario> findById();

    public abstract List<Funcionario> findAll();

}

FuncionarioDaoFactory.java:

package com.ctrlpmo.model.dao;

public class FuncionarioDAOFactory {

    public static FuncionarioDAO createFuncionarioDAO(){

        return new FuncionarioDAOJdbc();        
    }

}

FuncionarioDAOJdbc.java:

package com.ctrlpmo.model.dao;

import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.connections.db2.ConnectionFactory;
import com.ctrlpmo.model.entities.Funcionario;

public class FuncionarioDAOJdbc implements FuncionarioDAO {

    private Connection connection;

    public FuncionarioDAOJdbc() {
        this.connection = (Connection) new ConnectionFactory().getconnection();
    }

    @Override
    public void create(Funcionario funcionario) {
        String sql = "insert into ctrlpmo.funcionarios (nome, matricula, projeto, contrato, area, subteam, email_shell, email_ibm, id_shell, start_date, end_date, acesso_porta) values (?,?,?,?,?,?,?,?,?,?,?,?)";

        try {
            PreparedStatement stmt = connection.prepareStatement(sql);
            stmt.setString(1,funcionario.getNome());
            stmt.setString(2,funcionario.getMatricula());
            stmt.setString(3,funcionario.getProjeto());
            stmt.setString(4,funcionario.getContrato());
            stmt.setString(5,funcionario.getArea());
            stmt.setString(6,funcionario.getSubteam());
            stmt.setString(7,funcionario.getEmail_shell());
            stmt.setString(8,funcionario.getEmail_ibm());
            stmt.setString(9,funcionario.getId_shell());
            stmt.setDate(10, new Date (funcionario.getStart_date().getTimeInMillis()));
            stmt.setDate(11,new Date (funcionario.getEnd_date().getTimeInMillis()));
            stmt.setDate(12, new Date (funcionario.getAcesso_porta().getTimeInMillis()));
            stmt.execute();
            stmt.close();
          }
        catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }

    @Override
    public void delete(int idFuncionario) {

    }

    @Override
    public void update(Funcionario funcionario) {
        // TODO Auto-generated method stub

    }

    @Override
    public List<Funcionario> findById() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public List<Funcionario> findAll() {
        try {
            List<Funcionario> funcionarios = new ArrayList<Funcionario>();
            PreparedStatement stmt = this.connection.prepareStatement("select * from ctrlpmo.funcionarios");
            ResultSet rs = stmt.executeQuery();
            while (rs.next()) {
                // criando o objeto Area
                Funcionario funcionario = new Funcionario();
                funcionario.setIdf(rs.getInt("idf"));
                funcionario.setNome(rs.getString("nome"));
                funcionario.setMatricula(rs.getString("matricula"));
                funcionario.setProjeto(rs.getString("projeto"));
                funcionario.setContrato(rs.getString("contrato"));
                funcionario.setArea(rs.getString("area"));
                funcionario.setSubteam(rs.getString("subteam"));
                funcionario.setEmail_shell(rs.getString("email_shell"));
                funcionario.setEmail_ibm(rs.getString("email_ibm"));
                funcionario.setId_shell(rs.getString("id_shell"));
                funcionarios.add(funcionario);
            }
            rs.close();
            stmt.close();
            return funcionarios; 
        }
        catch(SQLException e) {
            throw new RuntimeException(e);
        }
            }
}

FuncionarioBean.java:

package com.ctrlpmo.controllers;

import java.io.Serializable;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import com.ctrlpmo.model.dao.FuncionarioDAO;
import com.ctrlpmo.model.dao.FuncionarioDAOFactory;
import com.ctrlpmo.model.entities.Funcionario;


@ManagedBean
@ViewScoped
public class FuncionarioBean implements Serializable {

    private static final long serialVersionUID = 1L;
    private Funcionario funcionario;

private List<Funcionario> funcionarios = getFuncionarios();

    @PostConstruct
    public void init(){
        funcionario = new Funcionario();
    }

    public Funcionario getFuncionario(){
        return funcionario;
    }

    public List<Funcionario> getFuncionarios(){

        FuncionarioDAO areaDAO = FuncionarioDAOFactory.createFuncionarioDAO();

        return areaDAO.findAll();        
    }

    public String create(){

        FuncionarioDAO funcionarioDAO = FuncionarioDAOFactory.createFuncionarioDAO();

        funcionarioDAO.create(this.funcionario);

        return "list";
    }
}

Erro do sistema:

[ERROR   ] An exception occurred
javax.el.ELException: /funcionarios/edit.xhtml at line 134 and column 103 value="#{funcionarioBean.funcionario.start_date}": Cannot convert 12/07/1990 of type class java.lang.String to class java.util.Calendar
[ERROR   ] An exception occurred
javax.el.ELException: /funcionarios/edit.xhtml at line 134 and column 103 value="#{funcionarioBean.funcionario.start_date}": Cannot convert 1990-07-12 of type class java.lang.String to class java.util.Calendar

Poderiam me ajudar?

Obrigado

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java web jsf db2 ou faça a sua própria pergunta.