Чтение из БД

Есть два основных способа чтения данных из БД—это чтение списком и чтение по id. Для чтения из базы данных используется специальный вид запросов под названием Criteria. Пример вызова списка без фильтрации по параметрам:

List peoples = session.createCriteria(People.class).list();

To есть нужно только указать сущность, из которой мы хотим извлечь данные и вызвать метод list, который вернет список всех объектов, находящихся в данной таблице.

Если же нам нужен поиск по идентификатору, то нужно использовать некоторую фильтрацию:

  • 1. People people = (People) session.createCriteria (People.class)
  • 2. .add (Restrictions.eq (“id”, id)).uniqueResult ();

Как и в прошлый раз, мы указываем, к какой таблице обращаемся. Дальше используется метод add, в который прописываются условия отбора, это сделать нам позволяет класс Restrictions. Метод же eq означает, что будет осуществляться сравнение с объектом, который мы в него поместим. Метод uniqueResult позволяет вернуть результат объектом, но у него есть и недостатки: если объект не будет найден или по каким-то причинам объектов будет больше одного, произойдет ошибка. Для обхода ошибки рекомендуется прописывать немного другой код:

  • 1. People people = null;
  • 2. List peoples = session.createCriteria (People.class)
  • 3. .add (Restrictions.eq ("id", id)).list();
  • 4. if (peoples! =null&&peoples.size() = = 1)
  • 5. {
  • 6. people = peoples.get(O);
  • 7. }

Весь результат будет собираться в список, если не будет найдено ни одного элемента или элементов списка будет больше 1, то if не сработает, но и не произойдет ошибки.

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >