Select mysql java urgente

Eae galera to com um problema que quero pegar o email que volto no meu select do banco de dados o problema e que sempre que eu pego o valor e imprimo ele funciona normalmente mas depois tento usar ele ne outra view e simplismente da null

1 tela de login
Usuario u = new Usuario();
UsuarioDAO dao = new UsuarioDAO();
Emprestimo emp = new Emprestimo();

    Connection con = ConnectionFactory.getConnection();
    PreparedStatement stmt = null;
    ResultSet rs = null;

Usuario usu = new Usuario();
boolean check = false;

    try {

        stmt = con.prepareStatement("SELECT email FROM usuario WHERE nome_usuario = ? and senha = ? ");
        stmt.setString(1, txtnome.getText());
        stmt.setString(2, txtsenha.getText());

        rs = stmt.executeQuery();

   while (rs.next()) {
   
    emaill =(rs.getString("email"));     
        System.out.println(emaill);    
        emp.setUsuario_email_emp(emaill);
            check = true;
        }


    } catch (SQLException ex) {
        Logger.getLogger(UsuarioDAO.class.getName()).log(Level.SEVERE, null, ex);
    } finally {
        ConnectionFactory.closeConnection(con, stmt, rs);
    }

 

   
   
   if(check = true){
       System.out.println(emp.getUsuario_email_emp());

       new ViewHome().setVisible(true);
       this.dispose();
   }else{
       JOptionPane.showMessageDialog(null, "Senha incorreta!");
   }

aquele xiaxia e o email que retorna quando logo

2 view onde uso o emaill

Connection con = ConnectionFactory.getConnection();
UsuarioDAO u = new UsuarioDAO();
Usuario uu = new Usuario();

    Emprestimo emp = new Emprestimo() ;
    
    
        PreparedStatement stmt = null;
        String sql = "INSERT INTO emprestimo(exemplar_livro_id, data_emprestimo, prazo , usuario_email ) VALUES (?,?,?,? )";
        
    try {
        SimpleDateFormat dformat = new SimpleDateFormat("yyyy-MM-dd");
        String emprestimodata  = dformat.format(jDate1.getDate());
          String emprestimodata1  = dformat.format(jDate2.getDate());
          stmt = con.prepareStatement(sql);
          
        stmt.setInt(1, emp.getId_exemplar());
        System.out.println(u.email);
          System.out.println(uu.emailsalvo);
        stmt.setString(2, emprestimodata);
        stmt.setString(3, emprestimodata1);
         stmt.setString(4, emp.getUsuario_email_emp());
        stmt.executeUpdate();
        
        JOptionPane.showMessageDialog(null, "Salvo com sucesso");
    } catch (SQLException ex) {
        JOptionPane.showMessageDialog(null, "Erro ao salvar"+ex);
    }finally{
        ConnectionFactory.closeConnection(con,stmt);
    }

PS quando executo a 1 tela volta o email perfeitamente porem quando chamo na segunda nao funciona volta null
erro que da quando preciso do email

Ol√°,

Ao tentar inserir o registro na tabela Emprestimo o valor do email está nulo e na sua tabela não pode estar, ou seja, esse campo é not null.
O campo de email est√° nulo porque a vari√°vel emp est√° sendo instanciada novamente.
No in√≠cio do m√©todo da segunda view voc√™ est√° realizando ‚ÄúEmprestimo emp = new Emprestimo();‚ÄĚ. Nesse momento voc√™ atribui a ‚Äúemp‚ÄĚ um novo endere√ßo de mem√≥ria e n√£o consegue mais acessar o valor de email.
As vari√°veis ‚Äúu‚ÄĚ e ‚Äúuu‚ÄĚ que voc√™ verifica atrav√©s do Sysout est√£o nulas porque n√£o foram preenchidas ao realizar login e tamb√©m foram instanciadas novamente.
Talvez n√£o seja isso, mas com as informa√ß√Ķes passadas √© √≠sso que podemos concluir.
Sugiro que tente acessar as variáveis da view de login que já estão preenchidas ou crie uma classe que possa receber esses valores que você precisa consultar e tente acessá-lo utilizando um Singleton (padrão de projeto).

:slight_smile:
Boa sorte!

2 curtidas