ERRO: DBNo operations allowed after connection closed.
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
public class Cliente implements Serializable {
private static final long serialVersionUID = 1L;
private String cpf;
private String nome;
private Date dataNascimento;
private ArrayList<Integer> telefone = new ArrayList<>();
public Cliente() {
}
@Override
public String toString() {
return "Cliente [cpf=" + cpf + ", nome=" + nome + ", dataNascimento=" + dataNascimento + "]";
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Date getDataNascimento() {
return dataNascimento;
}
public void setDataNascimento(Date data) {
this.dataNascimento = data;
}
public ArrayList<Integer> getTelefone() {
return telefone;
}
public void setTelefone(ArrayList<Integer> telefone) {
this.telefone = telefone;
}
}
import java.io.Serializable;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import br.com.edu.ifpb.model.Cliente;
public class ClienteDAO implements Serializable{
private static final long serialVersionUID = 1L;
public void createCliente(Cliente c) {
try(Connection con = ConnectionFactory.getConnection()){
PreparedStatement ps = con.prepareStatement("INSERT INTO CLIENTE(cpf,nome, dataNascimento)" + "value(?,?,?)");
ps.setString(1, c.getCpf());
ps.setString(2, c.getNome());
c.getDataNascimento();
ps.setDate(3, new java.sql.Date(c.getDataNascimento().getTime()));
ps.execute();
ps.close();
System.out.println("Salvo");
} catch (SQLException e) {
System.out.println("Erro ao grava na DB" + e.getMessage());
} catch (Exception e) {
e.printStackTrace();
}
}
public List<Cliente> getAllClientes() {
List<Cliente> clientes = null;
try (Connection con = ConnectionFactory.getConnection()) {
PreparedStatement ps = con.prepareStatement("SELECT * FROM CLIENTE");
ResultSet rs = ps.executeQuery();
clientes = new ArrayList<>();
while (rs.next()) {
Cliente c = new Cliente();
c.setCpf(rs.getString("cpf"));
c.setNome(rs.getString("nome"));
c.setDataNascimento(rs.getDate("dataNascimento"));
clientes.add(c);
}
ps.execute();
ps.close();
rs.close();
System.out.println("Recuperando dados");
} catch (SQLException e) {
System.out.println("Erro aqui" + e.getMessage());
}
return clientes;
}
}
@Named
@SessionScoped
public class BeanCliente implements Serializable {
private static final long serialVersionUID = 1L;
@Inject
private Cliente cliente;
private ClienteDAO c = new ClienteDAO();
private List<Cliente> clientes = c.getAllClientes();
public Cliente add() {
c.createCliente(cliente);
limpar();
return null;
}
private void limpar() {
cliente = new Cliente();
}
public Cliente getCliente() {
return cliente;
}
public void setCliente(Cliente cliente) {
this.cliente = cliente;
}
public List<Cliente> getClientes() {
return clientes;
}
public void setClientes(List<Cliente> clientes) {
this.clientes = clientes;
}
public ClienteDAO getC() {
return c;
}
public void setC(ClienteDAO c) {
this.c = c;
}
}
<b:form>
<b:row>
<b:column medium-screen="full">
<b:inputText style="width: 250px;" label="CPF:" label-style-class="text" value="#{beanCliente.cliente.cpf}"/>
</b:column>
<b:column medium-screen="full">
<b:inputText style="width: 250px;" label="Nome:" label-style-class="text" value="#{beanCliente.cliente.nome}"/>
</b:column>
<b:column medium-screen="full">
<b:datepicker style="width:250px;" label="Data de nascimento" inline="true" label-style-class="text" value="#{beanCliente.cliente.dataNascimento}" format="DD/MM/YYYY">
<f:convertDateTime pattern="dd/MM/yyyy"/>
</b:datepicker>
</b:column>
<b:commandButton value="Adicionar" look="info" styleClass="bt-cadastrar" actionListener="#{beanCliente.add}" />
</b:row>
</b:form>