Na verdade o gerenciador padrão do hibernate não é muito aconselhavel utilizar em produção, ou seja, se vc vai vender o sistema, e instalar num cliente que tenha umas 20 máquinas acessando…
Isso na própria documentação do hibernate é citado…segundo eles… o pool default do hibernate é mais para desenvolvimento e testes do sistema…
O c3p0 é mais maduro…tem mais recursos de configuração relacionado a tempo de conexão, conexões mínimas, conexões máximas, número de conexões, renovação, etc… é só adicionar os jars relacionados a ele no seu projeto e colocar no xml do hibernate as tags de configuração dele…
A vantagem??? depende do ponto de vista e do intúito da sua aplicação, se for somente para a apresentação de um trabalho, creio que não seja necessário, usando o default do hibernate já segura o tranco tranquilo… agora se vai instalar em um cliente com várias máquinas utilizam o sistema com uma carga de registros razoáveis… então já seria de se pensar mais seriamente na configuração do seu pool de conexões…até para não ocorrer, mais tarde um gargalo de dados ou conexões no seu servidor… e travar todo o seu sistema…
Existem outras opções além do c3p0 que trabalha em conjunto também com o hiberante…só que no momento não me recordo…