Como posso exibir um valor no BD numa JLabel?

Gente, desde já fico agradecido.

Preciso recuperar o valor do salário e o nome do usuário registrados no BD, assim exibindo cada um numa JLabel após o login. Todavia, não tenho muita ideia de como criar o código. Estou confuso.

Primeiramente vc deve possui uma comunicação com o banco. Feito isso vc monta um select que recupera os dados q vc precisa. Converte em String e de um setText no Label. Não tem segredo.

1 curtida

Muito obrigado! Consegui. Desculpas pela demora.

Olá, boa noite, apesar de parecer fácil, você pode colocar um exemplo ?

espero que não seja incomodo, apesar de fazer muito tempo desde esta postagem.

hehe

@Alex_Mach
Exemplo de classe de comunicação com o banco de dados, no exemplo eu uso o Oracle:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Connect {

    private Connection conec;

    public Connect() {
       try {
          Class.forName("oracle.jdbc.driver.OracleDriver");
          conec = DriverManager.getConnection("jdbc:oracle:thin:@//SERVER:1521/XXXXX", "Login", "Senha");
       } catch (ClassNotFoundException | SQLException ex) {
           System.out.println(ex.getMessage());
       }
    }

    public Connection getCon() {
         return conec;
    }
}

Abaixo tem o exemplo do método de busca de informação no banco de dados, note que meu valor de retorno é uma String. É possível fazer retorno de um objeto, no caso desse exemplo, eu poderia criar uma classe chamada Usuario que possuísse nome como atributo e retornar todas as informação desse usuário no mesmo select.

public class UsuarioControllDB{

   private final Connection conexao;

   public UsuarioControllDB() {
       conexao = new Connect().getCon(); // Aqui se conecta naquela classe acima
   }


   public String buscarNomeUsuario(Integer codUsuario) {
       try {
           String nomeUsuario = "";
           PreparedStatement prep = conexao.prepareStatement("select nomusu from USUARIOS Where codUSU=?");
           prep.setInt(1, codUsuario);
           ResultSet result = prep.executeQuery();
           if (result.next()) {
               nomeUsuario = result.getString(1);                
           }
           return nomeUsuario;
       } catch (java.sql.SQLException a) {
           System.out.println(a.getSQLState() + " - " + a.getMessage());
           return null;
       }
   }
}

No Label eu posso simplesmente invocar esse método ou atribuir o valor de retorno dele em uma variável.

String valor = new UsuarioControllDB().buscarNomeUsuario(1); // código do Usuário  = 1
labelText1.setText(valor);

Qualquer dúvida eu posso te ajudar via Skype.

bom, eu estou usando public void, não sei se tem alguma diferença ou exista algo que empate.

private final String driver_mysql = “com.mysql.jdbc.Driver”;
private final String caminho_mysql = “jdbc:mysql://xxx.xxx.x.x.:xxxx/000000000”;
private final String usuario_mysql = “xxx”;
private final String senha_mysq l = “xxxxxxxxxxxxxxxxxxxxxxx”;

public void link_mysql(){
    try {
        System.setProperty("jdbc.Driver", driver_mysql);
        conn_mysql = DriverManager.getConnection(caminho_mysql, usuario_mysql, senha_mysql);
        contact_mysql = 1;
    } catch (SQLException ex) {
        contact_mysql = 0;
        Logger.getLogger(Conexao_MySQL.class.getName()).log(Level.SEVERE, null, ex);
    }

}   



public void executaSQL(String sql){
    try {
        stm_mysql = conn_mysql.createStatement(rs_mysql.TYPE_SCROLL_INSENSITIVE,rs_mysql.CONCUR_READ_ONLY);
        rs_mysql = stm_mysql.executeQuery(sql);
    } catch (SQLException ex) {
       //JOptionPane.showMessageDialog(null, "Erro de ExecutaSQL!\nERRO:" + ex.getMessage());
    }

bom, essa ai é minha classe de conexão com o banco, não sei se exista algo ai que eu possa usar, qualquer coisa me fala.

não sei também se essa classe fica ou não dentro da tela, essa que você colocou como exemplo.

Bom dia, @Alex_Mach

public void... // Não possui valor de retorno;
public String... // Retorna String;
public Object... // Retorna Objeto;

Tudo depende da sua necessidade, se seu método se encontra na mesma classe que referencia o Label, você pode usar diretamente.
Porém uma coisa que notei é que você está preparando o select de outra forma.
Tente fazer assim:

public void executaSQL(String sql){
    try {
        String nomeUsuario  = "";
        PreparedStatement  stm_mysql = conn_mysql.createStatement(sql);
        ResultSet result = stm_mysql.executeQuery();
        while (result.next()) {
             nomeUsuario = result.getString(1);                
         }
    } catch (SQLException ex) {
       //JOptionPane.showMessageDialog(null, "Erro de ExecutaSQL!\nERRO:" + ex.getMessage());
    }
}