Ajuda Programação Java-Netbeans

Boa Noite Pessoal…
Sou novo no fórum, é o seguinte, estou fazendo um projeto escolar, faço ETEC e estou no segundo ano do médio…

O que está acontecendo é o seguinte: É um formulário de cadastro de animais e adoções que faz a ligação com um banco de dados SQL, e estou usando o campo de data como “DATE” só que no java, quando preencho a data tenho que preencher dessa maneira “2016/07/14 12:35:25” colocando a hora/minuto/segundo, teria como resolver esse problema sem mudar o banco de dados para “VARCHAR” existe alguma classe tipo o “Input=“date”” do HTML ? Ou qualquer outro código que sincronize esse tempo com a hora do pc e coloque direto ? estou aceitando qualquer resolução, só nao quero ter que colocar a hora/minuto/segundo e sim somente a data, obrigado

Pra ficar a data no formato correto você pode usar:

new JFormattedTextField(formatoData); (você coloca em "código de criação personalizado, que fica na aba Código do seu jtext)

Essa parte ai abaixo vc coloca em “Código de Pré-criação”, (que fica na aba Código do seu jtext)

try { formatoData = new MaskFormatter ("##/##/####"); }

catch (Exception error) {

JOptionPane.showMessageDialog(null, “Não foi possível setar a data de nascimento, tente novamente” + error); }

Fazendo isso vc precisa colocar a data como String, na sua classe DAO “Get e Set”.

Colocar tmbm no seu Jframe MaskFormatter formatoData;

Com isso a data vai ficar no formato correto “dd/MM/AAAA” dessa forma ai sem horário.

Boa tarde a todos é a primeira vez que entro em um fórum para tirar duvidas estou aprendendo a programar em java Netbeans 8.2 e estou com um problema de erro.
tenho um formulário com uma tabela na arquitetura MVC e no dao fiz o código para linkar com o BD mysql e mostrar na jtable do form aparentemente está tudo certo ele executa mas aparece a mensagem .: O erro foi java.sql.SQLException: SQL String can not be NULL
CONSTRUÍDO COM SUCESSO (tempo total: 24 segundos).

Engraçado que ja fiz o mesmo código em outro programa e deu certo .

abaixo vou colocar o código…

Aqui o código do DAO.

package dao;

import control.ConnectionFactory;
import control.TesteConexao;
import java.sql.Connection;
import model.AgendaModel;
import java.sql.*;
import java.sql.PreparedStatement;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import java.sql.ResultSet;
import java.sql.SQLException;
import View.JFrameBusca;

public class AgendaDao {

public static Connection connection;

  
int id;
String nome, endereco, datnas, tel, email;
    
public AgendaDao(){
    this.connection = new ConnectionFactory().getConnection();
}    
 

public void adiciona(AgendaModel agenda){
    
    String sql = "insert into pessoas(nome,endereco,nascimento,telefone,email)values(?,?,?,?,?)";
    
    try{
        try (PreparedStatement stmt = connection.prepareStatement(sql)) {
            stmt.setString(1, agenda.getNome());
            stmt.setString(2, agenda.getEndereco());
            stmt.setString(3, agenda.getDatnas());
            stmt.setString(4, agenda.getTel());
            stmt.setString(5, agenda.getEmail());
            stmt.execute();
        }
        
    }
      catch(SQLException u){
          throw new RuntimeException(u);
      }
}

public void excluir(AgendaModel agenda){
    
    String sql = "Delete from pessoas where nome=?;";
        try { 
            PreparedStatement stmt = connection.prepareStatement(sql);
            stmt.setString(1, agenda.getNome());
           
            stmt.execute();
            stmt.close();
        } 
        catch (SQLException u) { 
            throw new RuntimeException(u);
        } 
}

 public void alterar(AgendaModel agenda){
    
    String sql = "Update pessoas(id,nome,endereco,nascimento,telefone,email)values(?,?,?,?,?,?)where id = ?";
    
    try{
        try (PreparedStatement stmt = connection.prepareStatement(sql)) {
            stmt.setInt(1, agenda.getid());
            stmt.setString(2, agenda.getNome());
            stmt.setString(3, agenda.getEndereco());
            stmt.setString(4, agenda.getDatnas());
            stmt.setString(5, agenda.getTel());
            stmt.setString(6, agenda.getEmail());
            stmt.setInt(7, agenda.getid());
            stmt.execute();
        }
        
    }
      catch(SQLException u){
          throw new RuntimeException(u);
      }
 }

//cria e preenche a tabela
    public void PopularJTable(String sql){
         //sql = "SELECT * FROM pessoas";
        // this.connection = new ConnectionFactory().getConnection();
        try {
            //connection = ConnectionFactory.getConnection(); //abre a conexão com o banco
            try ( //connection = DriverManager.getConnection("jdbc:mysql://localhost:3308/pais","root","");
                    PreparedStatement stmt = (PreparedStatement)connection.prepareStatement(sql)) { //prepara o Statement para receber dados.
                    stmt.execute(); //cria ovetor
                    
                    ResultSet resultado = stmt.executeQuery(sql); //aponta para os registros do BD
                    JFrameBusca b = new JFrameBusca(); 
                    DefaultTableModel model = (DefaultTableModel) b.jTable1.getModel(); //aponta para o modelo da tabela criada
                    model.setNumRows(0); // comessando da linha zero 
                
                while (resultado.next()){
                    model.addRow(new Object[]{
                        
                        resultado.getInt("id"),
                        resultado.getString("nome"),
                        resultado.getString("endereco"),
                        resultado.getDate("nascimento"), //prenche a tabela com os dados do BD
                        resultado.getString("telefone"),
                        resultado.getString("email")
                        
                    });
                }
            } 
        }
    
        catch (SQLException ex){
            System.out.println("O erro foi "+ex); //mensagem de eccessão de erro
        }
    }



  }

Aqui o código do Form
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package View;

import dao.AgendaDao;
import java.util.ArrayList;
import java.util.List;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import model.AgendaModel;
import java.sql.Connection;
import java.sql.*;
import java.sql.PreparedStatement;
//import com.mysql.jdbc.PreparedStatement;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.table.DefaultTableModel;
import java.awt.event.WindowListener;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

/**
 *
 * @author Escola
 */
public class JFrameBusca extends javax.swing.JFrame {

    /**
     * Creates new form JFrameBusca
     */
    String sql;
    public JFrameBusca() {
        initComponents();
        
        AgendaDao dao = new AgendaDao();
        dao.PopularJTable(sql);
        String sql = "SELECT * FROM pessoas";
    }

    
    
    
    
    
    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();
        jLabelNome = new javax.swing.JLabel();
        jTNome = new javax.swing.JTextField();
        jBBuscar = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "ID", "Nome", "Endereço", "Nascimento", "Telefone", "Email"
            }
        ));
        jScrollPane1.setViewportView(jTable1);

        jLabelNome.setText("Nome.:");

        jBBuscar.setText("Buscar");
        jBBuscar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBBuscarActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 375, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jLabelNome)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jTNome, javax.swing.GroupLayout.PREFERRED_SIZE, 225, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(jBBuscar)))
                .addContainerGap(18, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addGap(16, 16, 16)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabelNome)
                    .addComponent(jTNome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jBBuscar))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 31, Short.MAX_VALUE)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 275, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );

        pack();
        setLocationRelativeTo(null);
    }// </editor-fold>                        

    private void jBBuscarActionPerformed(java.awt.event.ActionEvent evt) {                                         
       // AgendaDao dao = new AgendaDao();
       // dao.PopularJTable(sql);

        
    }                                        

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
//        /* Set the Nimbus look and feel */
//        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
//        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
//         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
//         */
//        try {
//            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
//                if ("Nimbus".equals(info.getName())) {
//                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
//                    break;
//                }
//            }
//        } catch (ClassNotFoundException ex) {
//            java.util.logging.Logger.getLogger(JFrameBusca.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
//        } catch (InstantiationException ex) {
//            java.util.logging.Logger.getLogger(JFrameBusca.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
//        } catch (IllegalAccessException ex) {
//            java.util.logging.Logger.getLogger(JFrameBusca.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
//        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
//            java.util.logging.Logger.getLogger(JFrameBusca.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
//        }
        //</editor-fold>
       /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new JFrameBusca().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JButton jBBuscar;
    private javax.swing.JLabel jLabelNome;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextField jTNome;
    public javax.swing.JTable jTable1;
    // End of variables declaration                   
}

Tenho certeza que é algo fácil mas não estou achando pelo que eu entendi fala que a variavel sql nao pode ser nula sei lá

Agradeço muito pela ajuda e desculpem se postei ou fiz algo errado pois é minha primeira vez…

vlw.

A sua dúvida foi: “só não quero ter que colocar a hora/minuto/segundo e sim somente a data”. Para isso, você pode utilizar algo do tipo:

public String HoraAgora_HHMM() {
    DateTimeFormatter dtfHHMM = DateTimeFormatter.ofPattern("HH:mm");
    LocalDateTime dtAgora = LocalDateTime.now();         
    return dtfHHMM.format(dtAgora);
}

Esse método retorna a hora e minuto atuais do sistema. Basta adequar a formatação HH:mm às suas necessidades.

Desculpe Klonder não sei se a resposta é referente a minha pergunta caso seja peço que de uma lida pois não tem nada a ver com que perguntei agora se não foi para mim pesso desculpa novamente pois sou novato aqui ainda estou conhecendo a plataforma ok… abraços…vlw…

Você respondeu coisa de 3 anos atrás, e o nosso amigo @SanchezMena tá perguntando agora, em 2019, sobre outra coisa, sem ser aquele negócio de datas que o colega em 2016 tava querendo saber :wink: