Предположим, ваш запрос: «выберите идентификатор, имя из пользователей, где rollNo = 1001».
Здесь запрос вернет объект с идентификатором и столбцом имени. Ваш класс Response выглядит следующим образом:
public class UserObject{
int id;
String name;
String rollNo;
public UserObject(Object[] columns) {
this.id = (columns[0] != null)?((BigDecimal)columns[0]).intValue():0;
this.name = (String) columns[1];
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getRollNo() {
return rollNo;
}
public void setRollNo(String rollNo) {
this.rollNo = rollNo;
}
}
здесь UserObject
конструктор получит массив объектов и установит данные с помощью объекта.
public UserObject(Object[] columns) {
this.id = (columns[0] != null)?((BigDecimal)columns[0]).intValue():0;
this.name = (String) columns[1];
}
Ваша функция выполнения запроса похожа на приведенную ниже:
public UserObject getUserByRoll(EntityManager entityManager,String rollNo) {
String queryStr = "select id,name from users where rollNo = ?1";
try {
Query query = entityManager.createNativeQuery(queryStr);
query.setParameter(1, rollNo);
return new UserObject((Object[]) query.getSingleResult());
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
Здесь вам нужно импортировать следующие пакеты:
import javax.persistence.Query;
import javax.persistence.EntityManager;
Теперь ваш основной класс, вы должны вызвать эту функцию. Сначала вам нужно получить EntityManager и вызвать эту getUserByRoll(EntityManager entityManager,String rollNo)
функцию. Процедура вызова приведена ниже:
@PersistenceContext
private EntityManager entityManager;
UserObject userObject = getUserByRoll(entityManager,"1001");
Теперь у вас есть данные в этом userObject.
Вот импорт
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
Примечание.
query.getSingleResult () возвращает массив. Вы должны поддерживать положение столбца и тип данных.
select id,name from users where rollNo = ?1
запрос возвращает массив, и это [0] --> id and [1] -> name
.
Для получения дополнительной информации посетите этот ответ
Спасибо :)
person
Md. Sajedul Karim
schedule
16.05.2018