Data para adicionar no BD

Olá pessoal,

Eu tenho um banco de dados Access, e eu queria pegar a data e mandar gravar ou consultar ela no BD, eu acho que é alguma coisa de conversão que ele não ta aceitando.

é o seguinte eu tenho campos de rich:calendar/ na minha aplicação, como vai ter que ficar a data para o BD aceitar.

meu select:


	public List<HorasTrabBean> consultaHorasFunc_AllParam(HorasTrabBean hora){
		
		try{
			pstm = con.prepareStatement("SELECT nm_funcionario AS func, nm_atividade AS Atividade, nm_sistema AS SISTEMAS, dt_servico as data, SUM(nr_qtd_horas) AS soma FROM FUNCIONARIO, ATIVIDADES, SISTEMAS, HORAS_TRAB WHERE ((fk_cd_func = ?) AND (fk_cd_atividade = ?) AND (fk_cd_sistema = ?) AND (dt_servico = ?) AND (dt_registro = ?)) and (FUNCIONARIO.pk_cd_funcionario = HORAS_TRAB.fk_cd_func) and (ATIVIDADES.pk_cd_atividade = HORAS_TRAB.fk_cd_atividade) and (SISTEMAS.pk_cd_sistema  = HORAS_TRAB.fk_cd_sistema) GROUP BY nm_funcionario, nm_atividade, nm_sistema, dt_registro, dt_servico");
			
			pstm.setInt(1, hora.getCod_Func());
			pstm.setInt(2, hora.getCod_ativ());
			pstm.setInt(3, hora.getCod_sis());
			//pstm.setDate(4, hora.getData_servico());
			//pstm.setDate(5, hora.getData_registro());
			
			ResultSet rs = pstm.executeQuery();
			list_horasTrab.clear();
		
		while(rs.next()){
			
			HorasTrabBean horasParam = new HorasTrabBean();
			horasParam.setNm_func(rs.getString("func"));
			
			int decimalPlace = 2;
			BigDecimal bd = new BigDecimal(rs.getDouble("soma"));
			bd = bd.setScale(decimalPlace,BigDecimal.ROUND_HALF_UP);
			double horas = bd.doubleValue();
			horasParam.setHoras(horas);
			list_horasTrab.add(horasParam);
			
		}
		rs.close();
		
		}catch(SQLException e){
			JOptionPane.showMessageDialog(null, e.getMessage(), "Erro", 0);
		
		}
		return list_horasTrab;
		
	}

e o meu Horas_TrabBean


	private int cod_horasTrab;
	private int cod_func;
	private int cod_ativ;
	private int cod_sis;
	private String nm_func;
	private String nm_ativ;
	private String nm_sis;
	private double horas;
	private Calendar data_servico_final;
	private String descricao;
	private boolean status_func;
	private Calendar data_registro_abertura;

minha tela:


<h:panelGrid>
					<h:outputText value="Funcionario" />
					<br />
					<h:selectOneMenu id="cbb_consFuncAllFuncs"
						value="#{HorasTrabMB.hora.cod_Func}"
						style="FONT-FAMILY: 'Times New Roman'; FONT-SIZE: medium;">
						<f:selectItems value="#{FuncionarioMB.allFuncionarios}"
							reRender="#{LoginMB.login.cod_tipo eq '1'}" />
					</h:selectOneMenu>
					<h:outputText value="Sistema" />
					<br />
					<h:selectOneMenu id="cbb_consFuncAllSis"
						value="#{HorasTrabMB.hora.cod_sis}"
						style="FONT-FAMILY: 'Times New Roman'; FONT-SIZE: medium;">
						<f:selectItems value="#{SistemasMB.allSistemas}" />
					</h:selectOneMenu>

					<h:outputText value="Atividade" />
					<h:selectOneMenu id="cbb_consFuncAllAtiv"
						value="#{HorasTrabMB.hora.cod_ativ}"
						style="FONT-FAMILY: 'Times New Roman'; FONT-SIZE: medium;">
						<f:selectItems value="#{AtividadesMB.allAtividades}" />
					</h:selectOneMenu>

					<h:outputText id="data_abertura" value="Data de Registro" />
					<rich:calendar id="data_Abertura" inputSize="12"
						datePattern="dd/MM/yyyy" enableManualInput="true"
						value="#{HorasTrabMB.hora.data_registro}" label="Data de Registro" />

					<h:outputText id="data_Servico" value="Data de Servico" />
					<rich:calendar id="data_servico" inputSize="12"
						datePattern="dd/MM/yyyy" enableManualInput="true"
						value="#{HorasTrabMB.hora.data_servico}" label="Data de Registro" />

					<a4j:commandButton value="Pesquisar" action="#{HorasTrabMB.consultaHorasFunc_Param}" reRender="tabela_HorasFunc"/>
					

amigo do céu…

primeiro, code convention
http://www.oracle.com/technetwork/java/codeconv-138413.html

segundo seu rich:calendar deve receber no value um tipo Date

terceiro, pq sua aplicacao que usa JSF tem um JOptionPane? Oo

abrasss

Isso é oq mais me espantou também! :shock:

o que eu devo colocar no lugar do JOptionPane?

eu não sei, eu sou novo com JSF.

amigao antes de usar um Framework para desenvolver creio que seria melhor estudar a plataforma, seus conceitos e desenvolver sem uso dos fw.

JOptionPane é uma classe para ser usada em projetos desktop (swing). quando voce faz a chamada dessa classe, ela ser executada no servidor.

De maneira bem resumida: aparecera a janela no servidor e nao no browser. Entao vc deve estar pensando: ah mas eu executo aqui e aparece.

Mas eh justamente pq seu browser esta na mesma maquina onde roda a aplicacao.

É bastante comum ver essas confusoes de inicio, continue estudando que essas duvidas parecerao obvias no futuro.

Respondendo sua pergunta de uma olhadinha na tag <h:messages />

http://www.roseindia.net/jsf/messages.shtml

ps: jsf nao eh um bom ponto de partida para estudar java p/ web.

[troll]Alem de ser feio[/troll] rsrs

abrassss

Exatamente, primeiro de tudo refatore seu código para os padrões Java, ou seja não faça:

cod_func

faça isso :

codFunc ou melhor ainda coloque o nome todo pra ficar mais legivel:

codigoFuncionario

Assim seu código fica mais claro e limpo.

Para imprimir as mensagens no cath use o messages como o renanreismartins falou assim

[code]Try{
//Seu código aqui
/
}catch(SuaExeption e ){

FacesContext context = FacesContext.getCurrentInstance();
FacesMessage msg = New FacesMessage(e.getMessage());
context.addMessage(null, msg);
return;
}[/code]

Exatamente, primeiro de tudo refatore seu código para os padrões Java, ou seja não faça:

cod_func

faça isso :

codFunc ou melhor ainda coloque o nome todo pra ficar mais legivel:

codigoFuncionario

Assim seu código fica mais claro e limpo.

Para imprimir as mensagens no cath use o messages como o renanreismartins falou assim

[code]Try{
//Seu código aqui
/
}catch(SuaExeption e ){

FacesContext context = FacesContext.getCurrentInstance();
FacesMessage msg = New FacesMessage(e.getMessage());
context.addMessage(null, msg);
return;
}[/code]