Su configuración se ve bien. Esto parece ser puramente un problema de permisos.
Debe otorgar acceso a ese usuario en mysql. Si bien Java se conectará a localhost, lo hará usando tcp/ip; sin embargo, en mysql localhost y 127.0.0.1 tienen un significado diferente. Emitir este SQL debería funcionar.
grant all on twitter.* to 'root'@'127.0.0.1' identified by 'mypwd';
Eso supone que Java resuelve 'localhost' en 127.0.0.1, si las cosas siguen sin funcionar, puede intentar cambiar su cadena de conexión a "jdbc:mysql://127.0.0.1:3306/twitter"
Como lo tiene ahora, la contraseña de texto sin formato.