Js - однопоточная.
blockquote>Браузер можно разделить на три части:
1) Event Loop
2 ) Web API
3) Очередь событий
Событие Loop запускается вечно, т. Е. Тип бесконечного цикла. Очередь ожидания - это то, где вся ваша функция нажимается на какое-либо событие (пример: нажмите) this один за другим выполняется в очереди и помещается в цикл «Событие», который выполняет эту функцию и подготавливает ее для следующего после первого запуска. Это означает, что выполнение одной функции не начинается до тех пор, пока функция, перед которой она в очереди не будет выполнена цикл событий.
Теперь давайте подумаем, что мы поставили две функции в очереди, чтобы получить данные с сервера, а другой использует эти данные. Мы сначала нажали функцию serverRequest () в очереди, а затем применили функцию Data () , Функция serverRequest переходит в цикл событий и делает вызов на сервер, так как мы никогда не знаем, сколько времени потребуется для получения данных с сервера, поэтому ожидается, что этот процесс займет много времени, и поэтому мы заняли наш цикл событий, тем самым повесив нашу страницу, вот где Web API входит в эту роль, он принимает эту функцию из цикла событий и обращается к серверу, создающему цикл событий, так что мы можем выполнить следующую функцию из очереди. Следующая функция в очереди - useData (), которая идет в цикле, но из-за отсутствия данных отходы и выполнение следующей функции продолжаются до конца очереди (это называется Async-вызовом, то есть мы можем сделать что-то еще, пока не получим данные)
Предположим, что наша функция serverRequest () имела оператор возврата в код, когда мы возвращаем данные с сервера Web API, будет выталкивать его в очередь в конце очереди. По мере того, как он заканчивается в очереди, мы не можем использовать его данные, поскольку в нашей очереди нет функции, чтобы использовать эти данные. Таким образом, невозможно вернуть что-то из Async Call.
Таким образом, решение этой проблемы callback или обещают .
A Изображение из одного из ответов здесь, правильно объясняет использование обратного вызова ... Мы (функция, использующая данные, возвращаемые с сервера), чтобы вызвать вызывающий сервер.
function doAjax(callbackFunc, method, url) { var xmlHttpReq = new XMLHttpRequest(); xmlHttpReq.open(method, url); xmlHttpReq.onreadystatechange = function() { if (xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200) { callbackFunc(xmlHttpReq.responseText); } } xmlHttpReq.send(null); }
В моем коде он называется
function loadMyJson(categoryValue){ if(categoryValue==="veg") doAjax(print,"GET","http://localhost:3004/vegetables"); else if(categoryValue==="fruits") doAjax(print,"GET","http://localhost:3004/fruits"); else console.log("Data not found"); }
Прочитайте здесь новые методы в ECMA (2016/17) для создания асинхронного вызова (@Felix Kling Answer сверху) https://stackoverflow.com/a/14220323/7579856
Чтобы создать запрос в структуре ORM Hibernate, существует три разных типа. Ниже перечислены три способа создания экземпляра запроса:
session.createQuery()
session.createSQLQuery()
session.createCriteria()
Подробно посмотрите детали каждой категории.
Session.createQuery()
Метод createQuery () создает объект Query с использованием синтаксиса HQL. Например:
Query query = session.createQuery("from Student s where s.name like 'k%'");
Session.createSQLQuery()
Метод createSQLQuery () создает объект Query с использованием собственного синтаксиса SQL. Например:
Query query = session.createSQLQuery("Select * from Student");
Session.createCriteria()
Метод createCriteria () создает объект Criteria для установки параметров запроса. Это более полезная функция для тех, кто не хочет писать запрос в руке. Вы можете указать любой тип сложного синтаксиса с использованием API критериев.
Criteria criteria = session.createCriteria(Student.class);
createSQLQuery - предназначен для собственного запроса sql, который выбран вами с помощью jdbc-драйвера cfg или что-то еще.
createQuery - для запросов на гибернацию, который предоставляет вам независимый запрос, который заставляет вас запускать это на многих базы данных с использованием API и другие преимущества.
createCriteria - лучше использовать для простого запроса на db из-за его простоты.
Надеюсь, это вам поможет!
------------------------
PERSON
------------------------
**DB_Column**| **POJO**
PERSON_ID | personID
------------------------
createQuery ()
вы используете поля pojo. Использование синтаксиса HQL.
Query query = session.createQuery("from Person s where s.personID like 'A%'");
// returns:
List<Person> persons = query.list();
createSQLQuery ()
Вы используете поля Native | DB. После того, как вы поделитесь поиском какого-либо сайта, вам известно, что это также очистит кеш, поскольку спящий режим не знает, что вы выполнили.
Query query = session.createSQLQuery("select s.* from Person s where s.person_ID like 'A%'");
// returns:
List<Object[]> persons = query.list();.
createCriteria ()
Criteria criteria = session.createCriteria(Person.class);
criteria.add(Restrictions.like("personId", "A%"));
List<Person> persons = criteria .list();
1. session.createQuery()-> Can create query using HQL and can perform CRUD Operations
Пример:
Query query = session.createQuery("from Student");
List list=quey.list();
Query query = session.createQuery("update Student where studentid=9");
int result=query.executeUpdate();
Query query = session.createQuery("delete Student where studentid="+ studentId);
int result=query.executeUpdate();
Query query = session.createQuery("insert into Student where studentid="+ studentId);
int result=query.executeUpdate();