Chamar usuario logado para gravar na tabela

4 respostas
E

Amigos tenho um pacote chamado br.com.prestcontas.main nele tem uma classe chamada Menu que por sua vez tem o metodo abaixo:

public boolean authenticateUser(Map loginInfo) throws Exception {
      PreparedStatement ps = null;
      try {
        ps = conn.prepareStatement("select * from funcionario where login=? and senha=?");
        ps.setString(1, (String) loginInfo.get("username"));
        ps.setString(2, (String) loginInfo.get("password"));
        ResultSet rs = ps.executeQuery();
        return rs.next();
      }
      catch (Exception ex) {
               return false;
      }
      finally {
        if (ps != null) ps.close();
      }
    }

Tenho outro pacote chamado br.com.prestcontas.controller que tem uma classe chamada movimentacaodetalhecontroller que por sua vez tem o metodo abaixo:

public Response insertRecord(ValueObject newPersistentObject) throws Exception {
        PreparedStatement stmt = null;
        try {
            stmt = conn.prepareStatement("insert into movimentacao(cdpessoa," +
                                                                  "dtmovimento, " +
                                                                  "saida, " +
                                                                  "entrada, " +
                                                                  "cdtransporte, " +
                                                                  "cdvisita, " +
                                                                  "cdsistema, " +
                                                                  "qde, " +
                                                                  "vltransporte, " +
                                                                  "vltotal, " +
                                                                  "login) " +
                                                                  "values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
            movimentacaovo vo = (movimentacaovo) newPersistentObject;
            
            stmt.setInt(1, vo.getCdpessoa());
            stmt.setDate(2, (Date) vo.getDtmovimento());
            stmt.setString(3, vo.getSaida());
            stmt.setString(4, vo.getEntrada());
            stmt.setInt(5, vo.getCdtransporte());
            stmt.setInt(6, vo.getCdvisita());
            stmt.setInt(7, vo.getCdsistema());
            stmt.setInt(8, vo.getQde());
            stmt.setFloat(9, vo.getVltransporte());
            stmt.setFloat(10, vo.getVltotal());
            //stmt.setString(11, Menu.main(get("username")));
       

            stmt.execute();
            movimentacaoFrame.reloadData();
            return new VOResponse(vo);
        } catch (SQLException ex) {
            ex.printStackTrace();
            return new ErrorResponse(ex.getMessage());
        } finally {
            try {
                stmt.close();
                conn.commit();
            } catch (SQLException ex1) {
            }
        }

    }

Em resumo o que eu queria fazer era inserir na tabela movimentação o codigo ou o nome do usuario logado no sistema.

Como insiro isto usando o codigo abaixo?

Detalhe, os codigos acima foram tirados de um outro sistema, estou aprendendo java sozinho pois nao tive como fazer cursos.

4 Respostas

wagnerfrancisco

O método que você passou (o primeiro) autentica o usuário no sistema. Na verdade ele simplesmente faz uma busca e verifica se o usuário/password existe ou não. Você precisa saber onde esse método é chamado e se a informação do usuário é armazenada de alguma maneira. Pelo que parece, não há uma entidade Usuario no sistema, simplesmente estão armazenando as informações num mapa. Veja como acessar essas informações em qquer ponto do sistema. É o que você precisa no segundo método. Em termos práticos, você precisa saber quem chama o método authenticateUser e ver onde as informações do usuário logado estão armazenadas enqto o programa está em execução.

Tome cuidado se você está aprendendo Java agora. Esse código que você passou apresenta alguns “problemas” conceituais. Não há divisão de camadas, nem nada do gênero. Não tome o que aí está como exemplo de arquitetura ou boa programação. :stuck_out_tongue:

Falou.

ctosin

Outra coisa que vai te ajudar muito, já que você está aprendendo Java agora, é seguir a convenção de código da Sun. Não é obrigatório mas é mais que altamente recomendado, já que tudo o que você for ver em Java costuma seguir a convenção (códigos bem feitos, é claro). O endereço é http://java.sun.com/docs/codeconv/

Abraço!

E

Na verdade ele armazena em um panel, como faço para pegar dele?

public void afterMDIcreation(MDIFrame frame) {
        GenericStatusPanel userPanel = new GenericStatusPanel();
        userPanel.setColumns(12);
        MDIFrame.addStatusComponent(userPanel);
        userPanel.setText(username);
        MDIFrame.addStatusComponent(new Clock());

        //System.out.print(username);
    }
E

Amigos,
Algum de vcs tem como me orientar a fazer o armazenamento do usuario na tabela me enviando um exemplo de como guardar o usuario logado para eu usar em qq tabela?

Criado 29 de janeiro de 2010
Ultima resposta 1 de fev. de 2010
Respostas 4
Participantes 3