Twoja konfiguracja wygląda dobrze. Wygląda na to, że jest to wyłącznie problem z uprawnieniami.
Musisz przyznać temu użytkownikowi dostęp w mysql. O ile Java połączy się z localhost, będzie to robić za pomocą tcp/ip - jednak w mysql localhost i 127.0.0.1 mają inne znaczenie. Wydanie tego kodu SQL powinno załatwić sprawę.
grant all on twitter.* to 'root'@'127.0.0.1' identified by 'mypwd';
Zakłada się, że Java zamienia „localhost” na 127.0.0.1, jeśli coś nadal nie działa, możesz spróbować zmienić ciąg połączenia na „jdbc:mysql://127.0.0.1:3306/twitter”
Tak jak masz teraz, hasło w postaci zwykłego tekstu.