Обмен с БД Java паттерн DAO

Реализую Java-приложение, которое общается с БД - вывод данных на экран, insert, update, delete.

Из простых сущностей есть таблица tags, которая содержит: id, name, color, order_num.

Как я понял паттерн DAO, то я должен сделать следующее:

  1. interface TagsDao
  2. В интерфейсе определить методы: insert, update, select (будут содержать непосредственно выполнение SQL-запросов к БД через JDBC)
  3. class Tag implements TagsDao c переменными id, name, color, order_num
  4. Для того, чтобы получить все тэги, то в интерфейсе мне также нужно определить метод get с запросом SELECT id, name, color, order_num FROM tags; который возвращает List < Tag > allTags и с этим allTags работать уже в Java.
  5. Когда я что-то делаю с какой-то переменной класса Tag в приложении, то я одновременно обращаюсь к методу DAO и обновляю сущность в БД.

Правильно ли я понял паттерн DAO для работы с БД в моём случае?


Ответы (1 шт):

Автор решения: Streletz

То, что Вы описали, это стандартный механизм использования DAO. Единственная оговорка:

Для того, чтобы получить все тэги, то в интерфейсе мне также нужно определить метод get с запросом SELECT id, name, color, order_num FROM tags; который возвращает List < Tag > allTags и с этим allTags работать уже в Java.

Совсем необязательно выбирать из БД всё. Можно использовать отбор с помощью того же WHERE Более того выборку всех данных имеет смысл делать, если она действительно нужна (даже для общих списков используют частичную выборку данных с пагинацией), т.к. данных может быть очень много и их получение и обработка может быть очень затратной операцией.

→ Ссылка