Como passar dados de um JTextField para um campo Date do Postgresql

Peço encarecidamente que me ajudem a resolver um problema de inserção de dados do tipo Date (SQL) para cadastro de novos alunos no projeto de Crud desenvolvido por mim no seguinte código:

    package grafico;

    import static com.sun.org.apache.xalan.internal.xsltc.compiler.util.Type.String;
    import java.sql.*;
    import java.util.Date;
    import java.text.DateFormat;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.swing.JOptionPane;
    import sistema.Conectora;

    public class Tela extends javax.swing.JFrame {

        Connection c = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        
        public Tela() {
            initComponents();
            setLocationRelativeTo(null);
            c = Conectora.conectora();
            
        }
        
        public void cadastrar() throws ParseException{
            String consulta = "INSERT INTO alunos (aluno, , nascimento, mae, pai, sexo, serie) VALUES (?,?,?,?,?,?);";
            
            
            
            
            try {
                ps = c.prepareStatement(consulta);
                ps.setString(1,campoAluno.getText());
                ps.setDate(2, new Date(campoNascimento.getText()));
                ps.setString(3,campoMae.getText());
                ps.setString(4,campoPai.getText());
                ps.setString(5,campoSexo.getText());
                ps.setInt(6,(Integer.parseInt(campoSerie.getText())));
                ps.execute();
                JOptionPane.showMessageDialog(null,"Cadastrado com sucesso!");
            }catch(SQLException e){
                JOptionPane.showMessageDialog(null, e);
            }
        }

Você tem que usar o Date do pacote java.sql ao invés do java.util

SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
java.sql.Date data = new java.sql.Date(format.parse(dataString).getTime());

E quais alterações eu tenho que fazer dentro do try?

Tenta ai, se não conseguir, posta o erro :+1:

Você precisa pegar os dados que foram digitados dentro do campo e colocar ele dentro do comando que você usa para inserir os dados no banco de dados ex:

Insert into usuario(id, nome, idade) value(1, “Mario Monteiro”, 67);

você precisa fazer isso via sql

JTextField campo_id;
JTextField campo_nome;
JTextField campo_idade;

Insert into usuario(id, nome, idade) value(campo_id, campo_nome,campo_idade);

Espero que tenha ajudado, não se se entendi bem o que você postou :slight_smile:

Eu estou com a mesma dificuldade, e não sei aonde eu coloco o SimpleDateFormat e o Java.sql.Date

O banco de dados esta com o campo Date mas não recebe pois oq ele recebe é em formato de texto

String consulta = "INSERT INTO alunos (aluno, , nascimento, mae, pai, sexo, serie) VALUES (?,?,?,?,?,?);";

eu imprimiria esta String consulta para verificar se o insert não contém texto com erro:

System.out.print(consulta); //coloque este comando antes do bloco try, teste também os valores contidos no objeto ps. Acho q o comando é .getString