gpt4 book ai didi

java - 如何避免多次执行查询?

转载 作者:行者123 更新时间:2023-12-01 16:55:35 25 4
gpt4 key购买 nike

假设我的 DAO 中有这个 nativeQuery:

SELECT a, b, c FROM table

它返回我需要的所有值。

问题是我有太多结果,我只需要运行一次查询,而不是为找到的每一行运行。

我正在检索查询结果并将所有值设置到名为 Class 的类(值对象)中,如下所示:

public List<Class> listClass() {

List<Class> listaObjs;

String nativeQuery = "SELECT a, b, c FROM table";
SQLQuery q = getSession().createSQLQuery(nativeQuery);

int totalRecords = q.list().size();
System.out.println("Total records: " + totalRecords);

listaObjs = q.list();

// For every ROW in query Result
for (int i = 0; i < totalRecords; i++) {
Object[] objs = (Object[]) q.list().get(i);
Class item = new Class();

// For every COLUMN in that ROW
for (Object obj : objs) {
item.setValueA((String) objs[0]);
item.setValueB(((String) objs[1]));
item.setValueC(((String) objs[2]));
listaObjs.add(item);
}
}
return listaObjs;
}

我有点卡在这里,因为我以前从未将这个 Object[] 处理为 Class 转换。

最佳答案

更改以下行

// For every ROW in query Result
for (int i = 0; i < totalRecords; i++) {
Object[] objs = (Object[]) q.list().get(i);

使用

List<Object[]> objArr = q.list();
// For every ROW in query Result
for (int i = 0; i < totalRecords; i++) {
Object[] objs = (Object[]) objArr.get(i);

关于java - 如何避免多次执行查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33309988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com