Oddzielenie SQL od kodu Java

Jest to problem, który zawsze napotykam, gdy muszę połączyć się z bazą danych; jak oddzielić SQL od normalnego kodu Java? Zwykle używam osobnej klasy dla połączeń z bazą danych, jednak gdy masz kilka baz danych i kilka tabel w każdej bazie danych, zawsze jest to trudne w 100%

Na przykład, jeśli chcemy umieścić wszystkie java SQL w klasie o nazwie DBConnector.java, jak kodować ogólnie dla różnych wstawień, usunięć, pobierania danych itp.? Myślę, że idealnym przypadkiem jest to, że wszystkie instrukcje SQL powinny być w tej samej klasie i powinny być kompatybilne z różnymi odmianami tej samej operacji w zakresie aplikacji bazodanowej, zapewniając tym samym logiczną separację od reszty kodu.

public void insertData (String db, String table, <Whatever Fields to be Inserted>)
{
  //generic SQL INSERT statement and execution 
}

public ResultSet retrieveData (String db, String table, <Whatever Fields Relevant>) 
{
  //generic retrieval of data
}

Czy jest jakiś sposób, aby to osiągnąć? Czy powinniśmy po prostu dodać funkcjonalność dla różnych odmian wstawiania, zapytań itp.?

Dziękuję Ci!

questionAnswers(4)

yourAnswerToTheQuestion