@Ranerg
SELECT * FROM USER WHERE username='.....' and password='......';
Это поймет любая база данных и вроде бы мы с ней и работаем, НО
Речь идет aбстрактно о хранилище обьектов типа User у которого есть методы типа
setId,getId,getUserName,setUserName,getPassword,setPassword, save.
Если есть эти методы, то можно составить интерфейст, который эти методы имеет.
Если есть интерфейс, то я Могу пользоватся User даже если его еще не написали и мне все ровно находится ли он в БД или в другом месте. Это означает, что я могу применять и тестировать код в других участках кода не задумываясь от куда User взялся.
Приемущество на лицо, ты можеш заменить User имплементируя интерфейс и тебе при этом не прийдется ни где менять код где он применяется. Другими словами SQL должно не просто в коде зависать, а только в конкретной имплементации.
_____________
↓↓↓↓↓↓↓↓↓↓ответ может быть здесьили в mysql_error();