W Javie nie ma czegoś takiego jak klasa statyczna w rozumieniu C#. W przypadku Java klasa statyczna to szczególny przypadek inner class, nie mający dostępu do elementów klasy nadrzędnej: Java klasa wewnętrzna statyczna
Występują natomiast pola i metody statyczne. Deklarowanie stałych jako:
public static String CONNECTION_STRING = "mysql://....";
Jest całkowicie ok. Jeżeli chcesz mieć funkcjonalny odpowiednik klasy statycznej z C# zadeklaruj normalną klasę, wpisz stałe których potrzebujesz i oznacz konstruktor jako prywatny.
Metody statyczne - tutaj trzeba uważać, ale moim zdaniem używanie ich nie jest samo w sobie niczym złym. Zakładam samowystarczalność takiej metody - dostaje jakieś parametry, coś na ich podstawie, lub z nimi robi, zwraca wartość i koniec.Mam na myśli metodę typu:
public static int sum(int a, int b){return a+b;}
Zmienne statyczne - w dzisiejszych czasach nie używać. Jedyne sensowne użycie jakie znam to implementacja wzorca singleton, ale dzisiaj lepiej to zrobić za pomocą enum. W szczególności - nie wolno używać pól statycznych jako "zmiennych globalnych". Nigdy.
Co do problemu z większą ilością obiektów odpowiadających za dostęp do bazy - musisz mieć jeden. Trzeba zaimplementować jakoś singleton. Najprościej używając enum (chociaż w Androidzie jest to wyklęte, ale raz się żyje), w wersji pro warto zerknąć na Dagger 2 + Android Extensions do niego, ale na początek to trochę hardcore jest.