-2
Я написал функцию, которая используется для выбора наивысшего значения и отображения всех элементов из sql на основе идентификатора. Если aa [0] является самым высоким, он отображает все в ID 0, если нет, то будет отображаться либо 1, либо 2. Но теперь проблема заключается только в отображении значения в ID 0, хотя ID 1 является самым высоким! Кто-нибудь может помочь мне разобраться, что случилось с моим кодированием? Благодаряdisplay наибольшее значение
private void pick_highest_value_here_and_display(ArrayList<Double> value) throws Exception {
// TODO Auto-generated method stub
double aa[]=value.stream().mapToDouble(v -> v.doubleValue()).toArray();
double highest=aa[0];
if(highest==aa[0])
{
String sql ="Select * from placeseen where ID =0";
DatabaseConnection db = new DatabaseConnection();
Connection conn =db.getConnection();
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
if (rs.next())
{
String aaa=rs.getString("place1");
String bbb=rs.getString("place2");
String cc=rs.getString("place3");
Tourism to =new Tourism();
to.setPlace1(aaa);
to.setPlace2(bbb);
to.setPlace3(cc);
DispDay dc=new DispDay();
dc.setVisible(true);
}
ps.close();
rs.close();
conn.close();
} else
{
for(int i=0;i<aa.length;i++)
{
if(aa[i]>highest)
{
highest=aa[i];
System.out.println(highest);
String sql ="Select * from placeseen where ID =?";
DatabaseConnection db = new DatabaseConnection();
Connection conn =db.getConnection();
PreparedStatement ps = conn.prepareStatement(sql);
ps.setDouble(1, i);
ResultSet rs = ps.executeQuery();
if (rs.next())
{
String aaa=rs.getString("place1");
String bbb=rs.getString("place2");
String cc=rs.getString("place3");
Tourism to =new Tourism();
to.setPlace1(aaa);
to.setPlace2(bbb);
to.setPlace3(cc);
DispDay dc=new DispDay();
dc.setVisible(true);
}
ps.close();
rs.close();
conn.close();
}
}
}
Проблема с функцией не имеет ничего общего с SQL. Проблема с вашей логикой заключается в том, что вы выполняете работу в java, а не в базе данных, где она будет намного более эффективной. –
Я согласен с Гордоном, но вы устанавливаете максимум на aa [0], а затем проверяете, будет ли высокий = aa [0], который всегда будет истинным, поэтому никогда не попадайте в другое. – Maxqueue
«Получите эту штуку. Хорошо, теперь самое высокое, что я нашел, это то, что есть. Если эта вещь самая высокая, сделайте это ... еще, зациклируйте какой-нибудь материал» – CubeJockey