Uma das formas de aprender
Autor: Luciano | Publicado: 2011-01-08T12:07:00-02:00

Vês por outra, alunos me mandam emails com questionamentos sobre temas de meu interesse e de aulas, mas antes que consiga me pronunciar já recebo as respostas obtidas por eles mesmos. Isto é uma situação interessante e muito útil no aprendizado.Hoje pela manhã abri meus email e tinha uma série em sequência de emails de um aluno que esta estudando nas férias. Achei muito massa, pois parece o vídeo extra do desenho Os Incriveis, onde a babá deixa varias mensagens sobre o surgimento dos poderes do bebê da familia e vai da tranquilidade ao pânico. Quem tem filhos provavelmente já assistiu inúmeras vezes. :-)Vou mante-lo no anonimato, mas eis a série de emails abaixo, dos quais não respondi nenhum (não deu tempo). Parabéns ao aluno, continue assim e vou responde-lo em private! :-)Em 7 de janeiro de 2011 18:57, xxxxxx escreveu:      Luciano,      Pensando no TCC resolvi estudar Java nas férias pela disponibilidade de horário. Estou pensando em fazer meu tcc em jsp.      Criei uma classe Conexao      public class Conexao {          private static final String usuario = "postgres";          private static final String senha = "123456";          private static final String banco = "jsp";          private static final String local = "//localhost:5432/";          public static Connection getConexao() throws SQLException {              try {                  Class.forName("org.postgresql.Driver");                  System.out.println("Conectado ao Banco \n");                  return DriverManager.getConnection("jdbc:postgresql:" + local + banco, usuario, senha);              } catch (ClassNotFoundException e) {                  throw new SQLException(e.getMessage());              }          }      }      e na minha pagina jsp pensei em importar ela e fazer Conexao.getConexao() para conectar.      A minha pergunta é se esse é um método correto de fazer ou usar DataSource? Sei que tu vai dizer que o DataSource é melhor , to tentando fazer em jsp e ainda nao obtive exito. Essa maneira que disse, é aceitável?      NAO ME XINGA.      Abraços,      xxxxxxEm 7 de janeiro de 2011 19:43, xxxxxx  escreveu:   Luciano,   Pesquisando nos teus slides, achei de barbada tua explicação.   Como eu ja tenho um DS configurado, apenas coloquei teu codigo....   <%                                         Context context = new InitialContext();                                         DataSource dataSource = (DataSource) context.lookup("jdbc/testeAula");                                         Connection conn = null;                                         try {                                             conn = dataSource.getConnection();                                                     PreparedStatement pst = conn.prepareStatement("Select matricula,nome from aluno");                                                     ResultSet rs = pst.executeQuery();                                                     int count = 0;                                                     while (rs.next()) {                                                         String classStyle = count++ % 2 == 0 ? "par" : "impar";                             %>           <%=rs.getString("matricula")%><%=rs.getString("nome")%>       <% }                                     } finally {                                         conn.close();                                     }                         %>   E funcionou perfeitamente.   Agora.... não me diz que era só isso para fazer datasource em JSP?   Mas para eu nao precisar fazer sempre a conexão, eu posso criar uma classe normal e chamar ela ne?   Abraços   PS: desculpa pela encomodação nas férias, é que deu saudade hehehheEm 7 de janeiro de 2011 21:01, xxxxxx  escreveu: Eu denovo@ ... Para não fazer burrada e ter que começar tudo denovo, resolvi me basear no teu projeto do SAPU sobre jsp com MVC. Em vez de alterar o projeto, fiz um novo e fui me baseado por ele. Bom, acredito ter ficado tudo certo, mas quando mando fazer o login aparece a seguinte msg "ERRO: relação "usuario" não existe Posição: 29" Copiei exatamente os codigos. Mas sei que tu deixa uns detalhezinhos pra os alunos "apanhar" e forçar o aprendizado, ae te pergunto... onde pode estar o erro? AbraçosEm 7 de janeiro de 2011 21:23, xxxxxx  escreveu:Quando ele chega nesse codigo aocntece o problema...codigo:public Usuario retrieve(String login) throws SQLException {      Usuario usrDept = new Usuario();      String sql = "SELECT COD,LOGIN,SENHA FROM USUARIO WHERE LOGIN=?";      PreparedStatement pst = this.conexao.prepareStatement(sql);      pst.setString(1, login);      ResultSet rs = pst.executeQuery();      if (rs.next()) {          usrDept.setCod(rs.getInt("COD"));          usrDept.setLogin(rs.getString("LOGIN"));          usrDept.setSenha(rs.getString("SENHA"));      }      rs.close();      pst.close();      return usrDept;  }Saida glassfish:SEVERE: org.postgresql.util.PSQLException: ERRO: relação "usuario" não existeAcho que vou encher tua caixa de entrada de emails. Sorry.abraçosEm 7 de janeiro de 2011 21:26, xxxxxx  escreveu:Adiantei d+...antes do codigo que te mandei tem o seguinte...public void processo() throws ServletException, IOException, SQLException {  String login = req.getParameter("txtUsuario");  String senha = req.getParameter("txtSenha");  UsuarioDAO usrDao = new UsuarioDAO(conn);  Usuario usuario = usrDao.retrieve(login);  if (usuario == null || !usuario.validaSenha(senha)) {      ServletPrincipal.dispatcherErro(req, resp, String.format("Usuário ou Senha Inválidos.[%s]", login));      return;  } else {      req.getSession().setAttribute("UsuarioLogado", Boolean.TRUE);      RequestDispatcher dispatcher = req.getRequestDispatcher("formprincipal.jsp");      dispatcher.forward(req, resp);  }}Em 7 de janeiro de 2011 21:35, xxxxxx  escreveu:Luciano,Favor desconsiderar TODOS os e-mails.Chega a dar vergonha do erro. Nem vo fala o que é porque é ridiculo d+ hehe.Abraços e bom final de semana