Problema ao Inserir um Enum JDBC

1 resposta
java
Dayson_Rodrigues

estou tentando persistir um formulário, e esse formulário possui um ENUM, só que ao tentar persistir o Objeto Enum está Null.

public class TarefaDAO {

private Connection connection = null;

public TarefaDAO() throws SQLException {
	this.connection = ConnectionFactory.getConnection();
}

public void adiciona(Tarefa tarefa) {
	String sql = "insert into tarefa(descricao,data,situacao) values (?,?,?) ";
	try (PreparedStatement stmt = connection.prepareStatement(sql)) {
		montaTarefa(tarefa, stmt);
	} catch (SQLException e) {
		e.printStackTrace();
	}
}
private void montaTarefa(Tarefa tarefa, PreparedStatement stmt) throws SQLException {
	stmt.setString(1, tarefa.getDescricao());
	stmt.setDate(2, new Date(tarefa.getData().getTimeInMillis()));
	stmt.setString(3, tarefa.getSituacao().getDescricao());
	stmt.execute();
	connection.close();

1 Resposta

M

um exemplo daqui do GUJ mesmo, pode fazer assim.

public enum TipoCadastro {  
        CLIENTE(1), FUNCIONARIO(2), FORNECEDOR(3);
        private int id;
        private TipoCadastro(int id) {
        this.id = id;
      }

    public int getId() {
    return id; 
    }

   public static TipoCadastro porId(int id) {
    for (TipoCadastro c : values()) {
     if (c.getId() == id) return c;
     return null;
  }

}

para salvar no banco,
cadastro.setInt(7, p.getTipoCadastro().getId());

para recuperar do resultSet,
TipoCadastro c = TipoCadastro.porId(rs.getInt("tipoCadastro"));

Criado 29 de setembro de 2017
Ultima resposta 29 de set. de 2017
Respostas 1
Participantes 2