Чтение из БД
Есть два основных способа чтения данных из БД—это чтение списком и чтение по id. Для чтения из базы данных используется специальный вид запросов под названием Criteria. Пример вызова списка без фильтрации по параметрам:
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 не сработает, но и не произойдет ошибки.