Correção de lógica

Boa tarde colegas,

Estou desenvolvendo uma página de login utilizando o ICEFaces + NB 6.5 + MYSQL. Estou postando a minha lógica aqui pra que colegas com mais experiencia possam analisa-la e e me dar um veredito se estou no caminho certo, ou seja, se a minha lógica está correta no que diz respeito a criação dos beans e jsp. Da maneira como foi feito está funcionando, mas gostaria de saber se estou no caminho certo:
// Método do botão LOGAR na minha página Login.jsp

    public String button2_action() throws Exception {

        try {

            CadUsuariosDAO dao = new CadUsuariosDAOImp();
            CadUsuarios validarUsuario = dao.procurarUsuario(inputText2.getText(), (String) inputSecret2.getValue());

            if (validarUsuario.getIdUsuario() != 0  ){
                return "autorizado";
            } else {
                throw new Exception();
            }

        } catch (Exception ex) {
            error("" + ex.getMessage());
        }

        return null;


    }

// Método do DAO

    public CadUsuarios procurarUsuario(String usuario, String senha) throws Exception {
        PreparedStatement ps = null;
        Connection conn = null;
        ResultSet rs = null;

        try {
            conn = this.conn;
            ps = conn.prepareStatement("select * from tbusuarios where stusuario=? And stsenha=?");
            ps.setString(1, usuario);
            ps.setString(2, senha);
            rs = ps.executeQuery();
            if (!rs.next()) {
                throw new Exception("USUÁRIO OU SENHA INVÁLIDO!");
            } else {

                Integer idUsuario = rs.getInt(1);
                String nomeUsuario = rs.getString(2);
                String stsenha = rs.getString(3);
                Integer idFuncionario = rs.getInt(4);
                java.sql.Timestamp dataCadastro = rs.getTimestamp(5);
                Date dataUltAlter = rs.getDate(6);
                Date dataUltAcesso = rs.getDate(7);
                Boolean excluido = rs.getBoolean(8);
                Date dataExclusao = rs.getDate(9);

                return new CadUsuarios(idUsuario, nomeUsuario, stsenha,
                        idFuncionario, dataCadastro, dataUltAlter, dataUltAcesso,
                        excluido, dataExclusao);


            }



        } catch (SQLException sqle) {
            throw new Exception(sqle);
        } finally {
            ConnectionFactory.closeConnection(ps, rs);
        }
    }

algumas dicas :smiley:

[quote]# CadUsuariosDAO dao = new CadUsuariosDAOImp();

CadUsuarios validarUsuario = dao.procurarUsuario(inputText2.getText(), (String) inputSecret2.getValue()); [/quote]

primeiro, vc n precisa fazer um binding para cada input da sua tela, vc assina o valor do input q esta na tela com a propriedade do seu pojo(CadUsuario), assim:

//no seu jsp <h:inputText value="#{CadUsuario.usuario"} /> <h:inputSecret value="#{CadUsuario.senha}"/>

ja q vc esta usando jdbc, se precisar passar parametros, use objetos como parametros, ao invez d passar String usuario, String senha, passe um objeto do tipo CadUsuario.

Bom dia Guimoz,

  Muito obrigado mesmo por responder a minha questao.

  Sem querer abusar e, se baseando na minha lógica acima, me mostre quais alterações voce faria no meu código ?  Como seria passar objeto como parâmetros ?

 Me desculpe pelas questões primárias, é que sou iniciante em java.

Um abraço

^^
q vc é iniciante ja deu pra percebe hehe :smiley:

qql duvida posta no forum q o pessoal vai lhe ajudar ^^

entao … qnd eu falo pra vc passar objetos como parametros, quero dizer isso …

 public CadUsuarios procurarUsuario(String usuario, String senha) throws Exception {  

ao invez de ter String usuario, String senha como parametro, vc vai ter um objeto CadUsuaruio como parametro

 public CadUsuarios procurarUsuario(CadUsuario cadusuario) throws Exception {  

e vc pega o valor do objeto assim, objeto.getPropriedade();

as alteraçoes q eu faria, ja mencionei antes…

Legallll Guimoz,

        Vou seguir mais essa orientação.

        Então se seu fizer como voce está me sugerindo na minha lógica ela fica 100% correta ????

Forte abraço

n existe logica 100% correta, vc tem n maneiras(logicas), de fazer a mesma coisa, oq existe sao as chamadas, “boas praticas”.

Então eu estou no caminho certo…rsrsrsr

Tenha uma otima semana.