我有一个partdetails表,在这个partdetails中我预加载了数据。每次向客户开票时,我都会从partdetails表中获取数据,如果我的表中没有任何数据,则意味着我键入了所有详细信息并向客户开票,因此新添加的零件详细信息需要添加到partdetails表中。这就是我要做的。
我在用hibernate。。。例如,我的数据如下所示
part[0]="abc123" assume (already in table)
part[1]="def123" assume (already not in table)
part[2]="ghi123" assume (already in table)
part[3]="jkl123" assume (already not in table)
select valueflagarray from partsdetails where part
我需要一个像这样的数组
valueflagarray[0]=true
valueflagarray[1]=false
valueflagarray[2]=true
valueflagarray[3]=false
如果valueflagarray=flase,我将使用此数组插入有关tat部分的信息。。
上面的问题我可以使用for循环作为select语句。但我需要一个干净的解决方案,因为我有数百万的记录。
array A;
for (int i=0;i<part.length;i++){
select * from partdetails where partnumber=part[i]
A[i]=resultset.length;
}我会得到这样的结果,但我不想要这个解决方案。
A[0]=1;
A[1]=1;
A[2]=0;
A[3]=1;
.. 在hibernate中是否有任何内置的功能,但我需要减少处理时间。请帮帮我。提前谢谢
1条答案
按热度按时间lyfkaqu11#
不要在for循环中执行查询并一次又一次地访问数据库以获取结果,而应该执行如下单个查询:
从resultset将这些结果收集到一个列表中
现在,遍历数组并检查结果列表中是否存在该部分。如果不是,则将其添加到valueflagarray。