сравнить результат набора результатов с переменной - PullRequest
0 голосов
/ 03 октября 2010

У меня возникли некоторые трудности в Java при сравнении переменной и следующего набора результатов.В моем случае я хочу: если temp variable = rs.next (), тогда temp = "", иначе значение rs.next () должно отображаться.раз, поэтому я хотел бы получить его один раз.

Вот мой код

while(rs.next()){

%>
        <tr>
            <td width="238">
                <%temp=rs.getString("TNAME");%> 
                <%=temp%> </td>
            <td><%=rs.getString("ID")%></td>
                    <%
                           if (rs.next().equals(temp){ 
            temp="";
            }


}

rs.close();

%> 

Ответы [ 2 ]

0 голосов
/ 03 октября 2010

ResultSet#next() возвращает boolean, а не String, содержащее значение столбца, который вы ищете. Но, тем не менее, вы действительно не хотите перемещать курсор к следующей строке. Когда вы вернетесь к началу цикла while, вы фактически пропустили одну строку.

Вам необходимо изменить логику: сравните текущий повторный name с ранее повторенный один и отобразите его, только если он отличается Затем сохраните в настоящее время с повторением name как переменную, чтобы его можно было сравнить на следующей итерации. Вот пример запуска, основанный на JSTL / EL и вымышленном List<Item>, который хранится как ${items} в области действия:

<table>
    <c:forEach items="${items}" var="item">
        <tr>
            <td><c:if test="${item.name != previousName}">${item.name}</c:if></td>
        </tr>
        <c:set var="previousName" value="${item.name}" />
    </c:forEach>
</table>

Вам нужно только перевести его на старомодные скриптлеты , если вы настаиваете на его использовании. Вышеприведенная логика должна быть достаточно понятной.

0 голосов
/ 03 октября 2010

Я думаю, что у вас есть две проблемы:

  1. вы итерируете свой цикл, используя rs.next(), но непреднамеренно перепрыгиваете через ваш второй rs.next() вызов.Вы сравниваете temp строку с rs.next(), а не конкретное поле, которое вас интересует.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...