Поместите здесь трех государственную диаграмму, чтобы облегчить функцию метода анализа:
1.session Save () Метод
Сеанс является наиболее важным интерфейсом между всеми склонными интерфейсами, обеспечивая методы для сохранения, обновления, запроса и удаления данных.
Метод SESSIONS SAVE () может преобразовать временные или свободные состояния в постоянные штаты. Например, сохранить объект клиента:
SessionFactory SessionFactory; Configuration Configuration = new Configuration (). Configure (); SessionFactory = configuration.BuildSessionFactory (); Session Session = SessionFactory.Opensession (); Transaction TR = Session.BeginTransAction (); // 1. Создать объект клиента Curect C1 = New Customer (); C1.SetId (New Long (1)); C1.SetName («Тест»); C1.Setemail ("[email protected]"); C1.setpassword ("123456"); C1.SetAddress ("Paradise"); // 2. Вызовите метод Save () Session, чтобы сохранить сеанс объекта клиента.save (c1); tr.commit (); session.close ();Метод save () в основном делает следующие три вещи:
(1) Поместите временный объект клиента, созданный новым в кеш, чтобы он сохранился.
(2) В то же время, в соответствии с генератором OID, установленным в файле отображения отношений объекта, то есть метод первичного генерации ключей генерирует уникальный OID для объекта.
<!-Установите первичный ключ-> <idname = "id" column = "id" type = "long"> <!-Метод генерации первичного ключа-> <GeneratorClass = "Increment"/> </id>
В этом месте есть вопрос. При создании объекта, независимо от того, генерирует ли метод setId () первичный ключ для стойкости объекта. На самом деле, это не так. SetId не генерирует первичную клавишу по мере установки, но генерирует первичный ключ на основе метода первичной генерации клавиш, настроенный в файле сопоставления отношений объекта. Его можно запустить в несколько раз, и основной ключ растет сам по себе. Вы можете увидеть несколько деталей данных из базы данных. Первичный ключ начинается с 1, так что вы можете знать, что setId ()
Первичный ключ не установлен, в противном случае проверка первичной ключа базы данных не будет возможна.
Мы также можем вручную установить значение первичного ключа. Мы должны перегрузить метод сохранения (), использовать метод перегрузки (C1, Newlong (1)) и устанавливать его вручную каждый раз.
(3) Планируйте выполнить оператор вставки. Обратите внимание, что оператор INSERT не выполняется немедленно, и оператор INSERT будет выполняться только тогда, когда сеанс очищает кеш. tr.commit () Транзакция.
2. Метод обновления () Session ()
Превратите объекты свободного состояния в постоянные объекты. Например:
SessionFactory SessionFactory; Конфигурация конфигурации = new Configuration (). Configure (); sessionFactory = configuration.BuildSessionFactory (); Session1 = sessionFactory.Opensession (); Транзакция tr1 = session1.beginTransaction (); // 1. Создать объект клиента Curect C1 = новый клиент (); c1.setid (new Long (1)); c1.setname ("test"); c1.setemail ("[email protected]"); c1.setpassword ("123456"); c1.setAddress («Рай»); // 2. Вызов сеанса SAVE () Метод для сохранения сеанса объекта клиента1.save (C1); tr1.commit (); session1.close (); // 3. Обновите объект свободного состояния, найдите изменения и выполните сеанс оператора обновления Session2 = sessionFactory.Opensession (); Транзакция tr2 = session2.beginTransaction (); c1.setAddress («Обновление тестового»); Session2.update (C1); tr2.commit (); session2.close ();Update () сеанса должен сделать следующее:
(1) Добавьте бесплатный объект клиента в кэш сеанса, чтобы стать постоянным объектом.
(2) Выполните оператор обновления. Точно так же, как Saving () выполняет оператор INSERT, он не выполняет оператор обновления немедленно. Когда кэш очищен, объект клиента собирается в оператор обновления.
Затем выполнить снова.
Обратите внимание, что даже если клиент не изменился, по умолчанию, оператор обновления будет собран, когда кэш будет очищен. Если это необходимо настроить для изменения, необходимо установить файл сопоставления отношений объекта.
3.session saveorUpdate () Метод
Метод SaveTorUpDate () содержит функции методов SAVE () и Update (), и различные методы вызываются в соответствии с состоянием пропущенного параметра. Передача во временном объекте, чтобы вызвать метод сохранения (), если он проходит в свободном объекте, чтобы вызвать его
МЕТОД UPDATE (). Возвращает входящий постоянный объект. Поэтому каждый раз, когда нам нужно только пройти в объекте, метод SaveTorUpdate (), автоматически судить о состоянии состояния передачи объекта и динамически вызывает метод обработки.
Как этот метод определяет состояние входящего объекта? Когда какое -либо из следующих условий будет выполнено, это временное состояние:
(1) OID объекта Java является нулевым, что означает, что объект не создается в противном случае. Даже если он создан создан, это объект, который был удален и становится временным состоянием после удаления свободного состояния. В этом случае объектом является временное состояние.
(2) Если объект Java имеет управление версией, а номер версии нулевой, это означает, что нет номера версии объекта.
(3) Настройте перехватчик, вызовите isunsaved () и возвращайте значение истинно.
4. Методы сеанса () и get ()
Оба метода основаны на OID, загружая постоянный объект из базы данных. Постоянный объект помещается в кэш сеанса, а постоянный объект может работать в соответствии с различными потребностями.
Разница между ними:
Когда в базе данных нет соответствующей записи в базе данных, Load () бросает исключение и get () возвращает NULL.
5. Метод Session's Delete ()
DELETE () Как предполагает имя, используется для удаления записей, соответствующих объектам Java из базы данных.
delete () Если продается постоянный объект, соберите оператор DELETE и выполните удаление; Если объект свободного состояния передается, Hibernate сначала связывает свободное состояние с сеансом, становится постоянным состоянием, а затем генерирует оператор Delete.
Выполнить удаление.
Все выполняются только тогда, когда кэш сеанса очищен.
Вышеуказанные выполнения - все это объект, соответствующий записи.
Вы можете использовать session.delete ("fromcustomerwhere ..."); Чтобы удалить несколько данных после добавления условий.
SessionFactory SessionFactory; Конфигурация конфигурации = new Configuration (). Configure (); sessionFactory = configuration.BuildSessionFactory (); Session1 = sessionFactory.Opensession (); Транзакция tr1 = session1.beginTransaction (); // 1. Создать объект клиента Curect C1 = новый клиент (); c1.setid (new Long (1)); c1.setname ("test"); c1.setemail ("[email protected]"); c1.setpassword ("123456"); c1.setAddress («Рай»); // 2. Вызовите метод сессии save (), чтобы сохранить сессию объекта клиента1.save (c1); tr1.commit (); session1.close (); // 3. Связывать объект свободного состояния с сеансом, очистить кэш после настойчивости и выполнить оператор DELETE; Поместите его в постоянное состояние, чтобы удалить его напрямую; Session2 = sessionFactory.Opensession (); Транзакция tr2 = session2.beginTransaction (); Session2.delete (C1); tr2.commit (); session2.close (); Результат выполнения, вывод консоли:
Hibernate: выберите Max (ID) от клиентов
Hibernate: вставьте в клиентов (имя, электронная почта, пароль, телефон, адрес, секс, is_married, описание, изображение, день рождения, зарегистрированный_time, id) значения (? ,? ,? ,? ,?
Hibernate: Удалить из клиентов, где ID =?
Суммировать
Выше приведено подробное объяснение сеанса Добавить, удаление, модификация и код операции поиска в Hibernate, я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!