The database specific adapters operated at a low level, and required the programmer to write all of the SQL, which was often verbose.