Maiscula e minuscula no login

Tô criando um programinha em java e nele eu tenho uma tela de login que busca do banco de dados usuarios e senhas cadastradas. O problema é que eu tenho um usuario chamado “admin” tudo minusculo msm e a senha “admin” tu em minusculo, mas se eu colocar no login AdMin e adMin, ele loga, ou seja ele só vê se o nome tem os mesmo caracteres, mas nao diferencia se ta em maisculas e minusculas. Alguém ja passou por isso?

public class TelaLogin extends javax.swing.JFrame {

Connection conexao = null;
PreparedStatement pst = null;
ResultSet rs = null;

public void iniciarSessao() {
    String sql = "select * from tbl_usuarios where login_usuario=? and senha_usuario=?";
    try {
        //AS LINHAS ABAIXO PREPARAM A CONSULTA AO BANCO EM FUNÇÃO DO QUE FOI DIGITADO 
        //NAS CAIXAS TXTUSUARIO E SENHA. O INTERROGAÇAO É SUBSTITUIDO PELO CONTEÚDO DAS VARIÁVEIS
        pst = conexao.prepareStatement(sql);
        pst.setString(1, txtUsuario.getText());
        pst.setString(2, txtSenha.getText());
            String textodigitado = txtUsuario.getText();
            
            System.out.println();
        // A LINHA ABAIXO EXECUTA A QUERY / CONSULTA AO BANCO DE DADOS
        rs = pst.executeQuery();

        //SE EXISTIR USUARIO E SENHA CORRESPONDENTE
        if (rs.next()) {

            // A LINHA ABAIXO OBTEM O CONTEÚDO DO CAMPO PERFIL DA TABELA TBUSUARIO
            String perfil = rs.getString(5);
            String usuario = rs.getString(3);
            System.out.println(perfil);
            System.out.println(usuario);

            // A ESTRUTURA ABAIXO FAZ O TRATAMENTO DO PERFIL DO USUÁRIO
            // DEPENDENDO DO PERFIL DO USUÁRIO SERÁ MOSTRADA FUNÇÕES DIFERENTES
            if (perfil.equals("administrador")) {

                TelaPrincipal principal = new TelaPrincipal();
                principal.setVisible(true);

                this.dispose();
                

            } else {

                TelaPrincipal principal = new TelaPrincipal();
                principal.setVisible(true);

                this.dispose();
                

            }

        } else {

            JOptionPane.showMessageDialog(null, "Usuário ou/e senha incorreto (s)");

        }

    } catch (HeadlessException | SQLException e) {
        JOptionPane.showMessageDialog(null, e);

    }

}

algo de errado não esta certo.

primeiro, que banco de dados é esse? pode ser que vc tenha alguma feature de busca “case insensitive”.

vc chega a imprimir o nome usuario?

o que acontece se vc conectar no banco e fazer essa mesma query?