Fazendo consulta com condicao Date

2 respostas
K

Galera Boa noite, to com um probleminha facil mas nao consigo resolver…eu to fazendo um select de cronogramas de aulas, eu seleciono a turma e depois pego a data como condicao o problema é que quando a data ta indo pro banco mysql, em vez de ir “yyyyMMdd” ta indo yyyy-MM-dd e esses ifens que esta sendo gerado fa minha consulta nao retorna nada mas tambem nao da erro…o codigo segue abaixo…
meu console quando mando imprimir a instrucao me retorna isso…

com.mysql.jdbc.JDBC4PreparedStatement@5c2445: select t.idTurma, c.diaAula, c.idCronograma, c.horarioAula, c.conteudoAula, d.idDisciplina, d.nomeDisciplina, p.idProfessor, p.nomeProfessor from turma t, professor p, disciplina d, cronograma c where c.idTurma = t.idTurma and c.idProfessor = p.idProfessor and c.idDisciplina = d.idDisciplina and c.idTurma = 1 and c.diaAula = '2011-09-25' order by horarioAula
No banco se eu inserir essa linha de comando e tirar os ifens funfa certinho

Classe JDBC

public List getListaCronograma(int idTurma, Date diaAula) throws IOException {
		
		Connection conn = null;
		PreparedStatement pst = null;

		try {
			conn = getConnection();
			List<Cronograma> cronograma = new ArrayList<Cronograma>();
			pst = conn.prepareStatement("select t.idTurma, c.diaAula, c.idCronograma, c.horarioAula, c.conteudoAula, d.idDisciplina, d.nomeDisciplina, p.idProfessor, p.nomeProfessor "
					+ "from turma t, professor p, disciplina d, cronograma c "
					+ "where c.idTurma = t.idTurma "
					+ "and c.idProfessor = p.idProfessor "
					+ "and c.idDisciplina = d.idDisciplina "
					+ "and c.idTurma = ? "
					+ "and c.diaAula = ? "
					+ "order by horarioAula");
			System.out.println("cheguei no jdbc");
			pst.setInt(1, idTurma);
			pst.setDate(2, new java.sql.Date(diaAula.getTime()));
			ResultSet rs = pst.executeQuery();
			System.out.println(pst);
			while (rs.next()) {
				Turma turma = getTurma(rs);
				Professor professor = getProfessor(rs);
				Disciplina disciplina = getDisciplina(rs);
				Cronograma cro = new Cronograma();
				cro.setIdCronograma(rs.getInt("idCronograma"));
				cro.setTurma(turma);
				cro.setProfessor(professor);
				cro.setDisciplina(disciplina);
				cro.setConteudoAula(rs.getString("conteudoAula"));
				cro.setDiaAula(rs.getDate("diaAula"));
				cro.setHorarioAula(rs.getString("horarioAula"));
				cronograma.add(cro);
			}
		} catch (Exception e) {
			e.printStackTrace();

		} finally {
			closeResources(conn, pst);
		}
		return null;

	}

Bean

meu xhtml onde eu coloco a turma e o dia

<ui:composition template="template.xhtml">
	<ui:define name="content">
		<a4j:form id="meuForm">
			<rich:panel header="Pesquisa Alunos da Turma" style="width:350px">
				<h:panelGrid columns="2" rowClasses="normal">
					<h:outputLabel value="Turma"></h:outputLabel>
					<h:selectOneMenu id="idTurma" value="#{cronogramaMB.turma.idTurma}"
						rendered="true">
						<f:selectItems value="#{cronogramaMB.turmas}" />
					</h:selectOneMenu>
					<h:outputLabel value="Dia de Aula"></h:outputLabel>
					<rich:calendar value="#{cronogramaMB.cronograma.diaAula}"
						datePattern="dd/MM/yyyy" locale="pt_Br" size="15" />
					<h:commandButton value="Consultar" action="listarCronograma.xhtml"></h:commandButton>
				</h:panelGrid>
			</rich:panel>
		</a4j:form>
	</ui:define>
</ui:composition>
</html>

E meu richDataTable que recebe a consulta.

<ui:composition template="template.xhtml">
	<ui:define name="content">
		<h:form id="meuForm">
			<a4j:keepAlive beanName="cronogramaMB" />
			<rich:dataTable width="450" rows="13" id="cronograma"
				value="#{cronogramaMB.listaDaTurma}" var="cro">
				<f:facet name="header">
					<rich:columnGroup>
						<rich:column>
							<h:outputText styleClass="headerText" value="Horario Aula" />
						</rich:column>
						<rich:column>
							<h:outputText styleClass="headerText" value="Professor" />
						</rich:column>
						<rich:column>
							<h:outputText styleClass="headerText" value="Disciplina" />
						</rich:column>
						<rich:column>
							<h:outputText styleClass="headerText" value="Conteudo" />
						</rich:column>
						<rich:column>
							<h:outputText styleClass="headerText" value="Ações" />
						</rich:column>
					</rich:columnGroup>
				</f:facet>
				<rich:column>
					<h:outputText value="#{cro.horarioAula}" />
				</rich:column>
				<rich:column>
					<h:outputText value="#{cro.professor.nomeProfessor}" />
				</rich:column>
				<rich:column>
					<h:outputText value="#{cro.disciplina.nomeDisciplina}" />
				</rich:column>
				<rich:column>
					<h:outputText value="#{cro.conteudoAula}" />
				</rich:column>
				<rich:column>
				<h:outputLabel value="Delete"></h:outputLabel>
				</rich:column>
				<f:facet name="footer">
					<rich:datascroller renderIfSinglePage="true" reRender="meuForm"
						ajaxSingle="true" />
				</f:facet>
			</rich:dataTable>
		</h:form>
	</ui:define>
</ui:composition>

2 Respostas

A

passa o parâmetro como java.util.date que ele interpreta

K

entao…quando eu coloco o java.util.Date ele pede pra fazer o cast do sql.Date e o erro continua…vc tem outra sugestao?
na minha classe model ele ja é do tipo java.util

Criado 27 de setembro de 2011
Ultima resposta 27 de set. de 2011
Respostas 2
Participantes 2