Quando você abre uma conexão com o banco de dados diretamente, usando
DriverManager.getConnection
, você fornece o nome de usuário e a senha para fazer logon no banco de dados nessa chamada. Ao usar um pool de conexões, você não está abrindo a conexão diretamente; em vez disso, o pool abre e gerencia as conexões para você. Obviamente, o pool precisa saber o nome de usuário e a senha para poder fazer logon no banco de dados nesse caso.
Normalmente, em um aplicativo da Web Java, você não usaria credenciais de login de banco de dados diferentes para cada usuário de seu aplicativo. Você teria apenas um nome de usuário e senha que o aplicativo usa, para qualquer pessoa que use o aplicativo da web. Se usuários diferentes do aplicativo da Web tiverem direitos diferentes, você configuraria isso com um sistema de login para o próprio aplicativo, mas os nomes de usuário e senhas que você usa para o aplicativo não são os mesmos que você usaria para fazer login para o banco de dados.