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!