Hello All,
I have a Java code which fetches SQL to populate the drop down box.
SQL is returning result in this order -
year_code year_description
5 2005
4 2004
3 2003
2 2002
The drop down build from the java program is showing the same order
However, I want to show the order like
2004
2005
2003
2002
How can I default the year code to 2004 when the SQL is returning the above order
What change I may need to incorporate in Java code or SQL ?? A code snippet will expedite and help me a lot.
Thanks for your feedback
-
Show Default Model Year (1 messages)
- Posted by: Server Side
- Posted on: February 27 2004 11:19 EST
Threaded Messages (1)
- Show Default Model Year by Paul Strack on February 27 2004 23:25 EST
-
Show Default Model Year[ Go to top ]
- Posted by: Paul Strack
- Posted on: February 27 2004 23:25 EST
- in response to Server Side
How exactly do you want to sort these? Current year first, then all other years in reverse order?
Doing bizaar sort operation can be hard in SQL, but not too bad in Java. The best way to handle this is with a java.util.Comparator that specifies your sort order. Here is a sketch, assuming your store your years as Integer objects.
public class YearComparator implements Comparator {
public int compare(Object o1, Object o2) {
Integer year1 = (Integer) o1;
Integer year2 = (Integer) o2;
if (year1.equals(year2)) return 0;
// Current year at the top:
Calendar now = Calendar.getInstance();
Integer currentYear = new Integer(now.get(Calendar.YEAR));
if (year1.equals(currentYear)) return 1;
if (year2.equals(currentYear)) return -1;
// Otherwise, sort in reverse order:
return (year2.intValue() - year1.intValue());
}
}
You can then sort the collection containing your years:
Collections.sort(years, new YearComparator());
Alternately, you can store your data in a tree map that uses your Comparator to determine sort order:
Map yearMap = new TreeMap(new YearComparator());
yearMap.put(yearData...);