У вас есть несколько вариантов здесь:
- JDBC - для низкоуровневого доступа к базам данных
- ORM как Hibernate - для доступа более высокого уровня
Исходя из вашего вопроса, звучит так, как будто вы хотите использовать инструмент отображения объектов в реляционные, например Hibernate, или один из других инструментов ORM на основе JPA.Как правило, они предоставляют вам высокоуровневый способ запроса вашей базы данных и возврата полностью сформированных объектов Java.
Чтобы ответить на ваши вопросы:
как я могу получить доступ к базе данных из всей программы
Обычно эта проблема решается не слоем базы данных, а шаблоном проектирования, таким как Dependency Injection, который дает вам возможность построить все ваши объекты и передать им соответствующие зависимости (например, базу данных).подключение).См. Spring Framework для примера DI в действии.
Как я могу получить правильный тип объекта?
Инструменты ORM обычно устанавливают отношения между конкретной таблицей и объектом Java.Тем не менее, даже с ORM вы будете передавать «шаблон» нужного вам объекта, поэтому, если вы пишете свой собственный, часто используется такой шаблон:
session.createCriteria(MyMappedObject.class).list()
Каков наилучший способ вставки или обновления значений?
Опять же, ORM поможет, и шаблон, как правило, просто передает объект, который вы хотите сохранить.Вы можете использовать внешнюю конфигурацию, такую как XML или аннотации, чтобы ваш объект на уровне реляционного отображения знал, как преобразовать ваш объект в соответствующие строки и столбцы.Сохранение или обновление в стандартном ORM, таком как Hibernate, тогда так просто:
session.saveOrUpdate(myObject);
Кто-нибудь знает хорошую реализацию уровня абстракции базы данных или что-то, что я могу использовать?
Hibernate или большинство других JPM 2.0 ORM звучат так, как вам нужно.