2013-06-15 1 views
0

Я выполнил тот же запрос в моем интерфейсе db напрямую и получил две строки в результате ... Я думал, что тоже должен быть таким же ... но он возвращает только один, а для второго он указывает индекс столбца из диапазона 2> 1 !!!Почему мой результирующий набор содержит только один результат, когда он должен был получить два результата.

session= request.getSession(); 
String name=(String)session.getAttribute("user"); 

Class.forName("com.mysql.jdbc.Driver"); 
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mutualfund", "root", ""); 


Statement statement = connection.createStatement(); 
String qry="SELECT `account_type_id` FROM `cust_accounts` WHERE `cust_id`=\""+name+"\""; 
ResultSet rs = statement.executeQuery(qry) ; 


if(!rs.next()) 
{ 
    out.println("Server Down.. Please try again later "); 
} 
else { 
    String one=rs.getString(1); 
    String two=rs.getString(2); 
} 

ответ

1

Ваш код не запрашивает две строки, он запрашивает два столбца, и ваш запрос поставляет только один.

if (!rs.next()) { 
    out.println("nope"); 
} else { 
    String one = rs.getString(1); 
    String two = ""; 
    if (rs.next()) 
    two = rs.getString(1); 
    } 
} 
+0

Да, это правильно. Если вы когда-либо ожидали, что там будет более двух строк, вы должны обернуть 'rs.next()' в цикле while. – superEb

+0

@APPU: Абсолютно. Кроме того, помните, что указанный выше код оставит 'two' пустой строкой, если возвращается только одна строка! –

+0

@ Russell Uhl sheesh !!! Я хочу сломать голову! Спасибо большое!! такая простая вещь !! Спасибо :) –

Смежные вопросы