Да, конечно, вы можете.Это даже легко сделать, если вы напишите правильно.
Начните свой уровень персистентности с помощью интерфейсов;разрешите только своим клиентам вызывать объекты, которые являются ссылочными типами интерфейса.Поместите реализацию JDBC позади них сегодня;завтра вы можете переключиться на реализацию Hibernate, и ваши клиенты не станут мудрее.В этом прелесть интерфейсов.
Примерно так:
package persistence;
public interface FooDao
{
List<Foo> find();
Foo find(Long id);
void saveOrUpdate(Foo foo);
void delete(Foo foo);
}
Одна важная вещь, на которую следует обратить внимание: этот интерфейс имеет дело только с объектами модели, а не с SQL.Способ, которым ваш уровень персистентности взаимодействует с реляционной базой данных, начинается с объектной модели.Это требование для Hibernate.Это сразу становится обязательным для вашей реализации JDBC, если вы собираетесь когда-нибудь заменить его на Hibernate.