Obter data de um JCalendar e utilizar em um instrução SQL

Boa noite a todos!!

Igualmente a muitos que postam aqui estou iniciando em JAVA e me deparei com um problema em meu projeto que são as datas aliadas a consultas SQL.
Estou utilizando o SQL Server e em uma determinada tabela tenho um campo date.
O meu problema está em
1°) Obter a data de um JCalendar e armazenar ela em uma variável para poder fazer uma consulta na tabela.
Fiz o seguinte:

Ao clicar no JCalendar.

private void jCalendarAgendaPropertyChange(java.beans.PropertyChangeEvent evt) {                                               
    SimpleDateFormat formato = new SimpleDateFormat("d 'de' MMMM 'de' yyyy"); 
    String data = formato.format(jCalendarAgenda.getDate());
    lblDataPrincipal.setText(data);
    try {
        buscarDiaAgenda(jCalendarAgenda.getDate());
    } catch (ParseException ex) {
        Logger.getLogger(frmAgenda.class.getName()).log(Level.SEVERE, null, ex);
    }
}

o Metodo buscarDiaAgenda captura a data.

public Date buscarDiaAgenda(Date diaAgenda) throws ParseException {
    SimpleDateFormat formato = new SimpleDateFormat("yyyy-MM-dd");
    String dia =  formato.format(diaAgenda);
    Date diaCalendario = formato.parse(dia);
    System.out.println(diaCalendario);
    return diaCalendario;
}

2°) A minha consulta SQL está em uma outra Classe e já tentei de varias formas com o pouco conhecimento que tenho de levar esta informação para esta Classe mas não consegui.

Outro detalhe não sei se preciso formatar a data para poder utilizar ela na minha consulta SQL.

Se alguém puder ajudar ficarei muito agradecido.

Acredito que consegui resolver a parte de atribuir a data a um metodo e o mesmo ser utilizado na consulta SQL, porém acredito que estou errando na sintaxe de como consultar.

String agendaSQL = “SELECT * FROM tblAgenda WHERE Data=’”+a.getDiaCalendario()+"’";

A forma de como estou fazendo com data está correta??
A data está no método a.getDiaCalendario().

Lembrando que estou utilizado como banco de dados o SQL SERVER e o tipo de campo é o date.

Bom dia,
geralmente datas no SQL você passa neste formato --> 'dd/mm/yyyy’
ex.: "SELECT * FROM TABELA WHERE DATA = ‘01/05/2017’ "

Eu não tenho experiência com SQL Server
não sei se ajuda mas vou postar um exemplo aqui usando MVC e DAO

private StringBuilder sql = new StringBuilder();

public void retornaPorData(ModeloAgenda agenda) throws Exception{
 try{
    sql.delete(0, sql.length());
    sql.append("SELECT * FROM tblAgenda WHERE Data='");     
    sql.append(conversorDeDateParaStrig(agenda.getDate())).append("' ");
    //este seria um metodo vindo de sua fábrica de conexões que executa SQLs
    super.executarSQL(sql.toString());
    super.resultset.first();
    //você chama seu modelo e seta os atributos dele ex:
    agenda.setCodigo(super.resultset.getInt("CODIGO"));
    agenda.setDescricao(super.resultset.getString("DESCRICAO"));
    //...
  }catch (Exception e){
    throw e; 
  }

}
//aqui o metodo conversor de data para string
public String conversorDeDateParaStrig(Date data){
   DateFormat inFormat = new SimpleDateFormat("dd/MM/yyyy");
   return inFormat.format(data);
}

Ficou meio vago seu problema, se puder especificar mais fica mais fácil te ajudar.

esse formato do SimpleDateFormat esta te mostrando a data ???
Faz assim… armazene dentro de um ArrayList e faz um forEach

Boa tarde!!

Pessoal muito obrigado pela ajuda…
Consegui resolver com o que o Bruno iniciou a conversa.

geralmente datas no SQL você passa neste formato --> 'dd/mm/yyyy’
ex.: "SELECT * FROM TABELA WHERE DATA = ‘01/05/2017’ "

É bem simples mas como não sabia a sintaxe com datas (JAVA) então estava com dificuldade para gerar a consulta. Estou muito acostumado com o VBA que as datas sao inseridas na sintaxe SQL entre #" "#.
A solução foi que as datas são passadas na sintaxe entre aspas e para o SQL SERVER no campo tipo date o formato no meu caso está ‘yyyy/mm/dd’.

Segue abaixo os meus codigos corrigidos. Nao sei se é o mais correto mas está funcionando.

//Ao clicar em uma data do JCalendar

private void jCalendarAgendaPropertyChange(java.beans.PropertyChangeEvent evt) {                                               
    try {
        buscarDiaAgenda();
    } catch (ParseException ex) {
        Logger.getLogger(frmAgenda.class.getName()).log(Level.SEVERE, null, ex);
    }
}                                              

//Metodo para buscar o dia no JCalendar, formatar e passa para a informacao para o metodo preencherAgendaTemp() localizada em outra Classe.

public void buscarDiaAgenda() throws ParseException {
    Agenda a = new Agenda();
    SimpleDateFormat formato = new SimpleDateFormat("yyyy/MM/dd");
    String dia =  formato.format(jCalendarAgenda.getDate());
    Date diaCalendario = formato.parse(dia);
    a.setDiaCalendario(diaCalendario);
    agendaDAO.preencherAgendaTemp(a);
}

Obrigado pela ajuda pessoal.

Abraco.