Passar valor da sessão http para seta-lo no parametro do preparedStatement do DAO
5 respostas
jMarcel
Pessoal, tenho o seguinte:
st = cn.prepareStatement("SELECT USUARIO, DISCIPLINA, NOTA FROM atividade01.notas x "
+ "right outer join atividade01.usuarios y on x.id_aluno=y.id_usuario "
+ "right outer join atividade01.disciplinas z on x.id_disciplina=z.id_disciplina "
+ "where USUARIO=?");
st.setInteger(1, usuario); // como recuperar o nome do usuario da sessao e atribui-lo aqui ?
rs = st.executeQuery();
Quero retorna uma list apenas com resultsets de um usuario, ou seja, filtrar o resultado da query pelo nome de quem logou.
vc pode retirar essas informações através do request.getParameter("id");
o request vc consegue através do seu servlet
mas seria legal se vc colocasse seu código pra gente analisar melhor
jMarcel
DaniloAndrade:
vc pode retirar essas informações através do
request.getParameter("id");
o request vc consegue através do seu servlet
mas seria legal se vc colocasse seu código pra gente analisar melhor
Segue o código (classe PojoJoin omitida):
publicclassDaoPojoJoinextendsDao{// private Usuarios Usuarios;publicList<PojoJoin>listaNotas(){List<PojoJoin>nota=newArrayList<PojoJoin>();if(abreConexao()){try{st=cn.prepareStatement("SELECT USUARIO, DISCIPLINA, NOTA FROM atividade01.notas x "+"right outer join atividade01.usuarios y on x.id_aluno=y.id_usuario "+"right outer join atividade01.disciplinas z on x.id_disciplina=z.id_disciplina "+"where y.usuario=?");st.setString(1,"nome de quem logou");// quero setar o nome do usuario com o valor recuperado do servletrs=st.executeQuery();while(rs.next()){PojoJoinpj=newPojoJoin();rs.getString("USUARIO");rs.getString("DISCIPLINA");rs.getDouble("NOTA");pj.setUsuario(rs.getString("USUARIO"));pj.setDisciplina(rs.getString("DISCIPLINA"));pj.setNota(rs.getDouble("NOTA"));nota.add(pj);}}catch(Exceptionex){erro=ex.getMessage();}finally{fechaConexao();}}returnnota;}}
DaniloAndrade
primeira coisa, se vc precisa de um usuario, mude a assinatura de seu metodo pra receber um usuario:
ex:
public List<PojoJoin> listaNotas(Usuario u){
List<PojoJoin> nota = new ArrayList<PojoJoin>();
if (abreConexao()) {
try {
st = cn.prepareStatement("SELECT USUARIO, DISCIPLINA, NOTA FROM atividade01.notas x "
+ "right outer join atividade01.usuarios y on x.id_aluno=y.id_usuario "
+ "right outer join atividade01.disciplinas z on x.id_disciplina=z.id_disciplina "
+ "where y.usuario=?");
st.setString(1,u.getNome()); // quero setar o nome do usuario com o valor recuperado do servlet
rs = st.executeQuery();
while (rs.next()) {
PojoJoin pj = new PojoJoin();
rs.getString("USUARIO");
rs.getString("DISCIPLINA");
rs.getDouble("NOTA");
pj.setUsuario(rs.getString("USUARIO"));
pj.setDisciplina(rs.getString("DISCIPLINA"));
pj.setNota(rs.getDouble("NOTA"));
nota.add(pj);
}
} catch (Exception ex) {
erro = ex.getMessage();
} finally {
fechaConexao();
}
}
return nota;
}
e no seu servlet vc vai fazer isso
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Usuario usuario = new Usuario();
usuario.setNome(request.getParamiter("nome"));
DaoPojoJoin dao = new DaoPojoJoin();
List<PojoJoin> lista = dao.listaNotas(usuario);
request.setAttribute("lista", lista );
}