代碼似乎工作正常,但我注意到,每當我查詢一個字符串只有一個結果,它什麼都沒有返回。不知何故,我跳過了我想的第一個結果,但不知道爲什麼。ResultSet失去第一個值
else{
Conn con = null;
try {
con = new Conn();
} catch (Exception e) {
e.printStackTrace();
}
String sql = "SELECT productname, quantityperunit, unitprice FROM products pr, categories ca WHERE pr.categoryID = ca.categoryID AND ProductName LIKE '%" + searchTerm + "%'";
System.out.println("last try");
try {
searchResults = con.query(sql);
if (searchResults.next()){
session.setAttribute("searchResults", searchResults);
}
} catch (Exception e) {
e.printStackTrace();
}
}
,這是上述顯示用代碼:
java.sql.ResultSet resultSet = (java.sql.ResultSet) session.getAttribute("searchResults");
if(resultSet == null){
out.println("Nullified");
}
if(resultSet!=null){
out.println("<table border='1'>");
out.println("<tr><th>Product Name</th><th>Quantity per Item</th><th>Price</th><th>Quantity</th><th><Add to Cart</th></tr>");
while(resultSet.next()){
out.println("<tr><td>"+resultSet.getString("ProductName")+"</td></tr>");
}
out.println("</table>");
}
任何幫助,將不勝感激。
遺憾的格式,我似乎無法得到它的工作的權利... – javArc 2010-06-05 00:15:05
要格式化代碼,用它縮進4個空間。您可以通過在編輯器工具欄或Ctrl + K鍵中選擇並按下'010101'按鈕來完成。我已經爲你做了。 – BalusC 2010-06-05 00:18:26
Khorkrak已經將它釘牢了。我只想補充說,這是**真的不是**編碼的方式。 JDBC代碼泄露資源。模型,視圖和控制器邏輯混合在一起。異常處理是假的。會話範圍被濫用。我已經發布了幾個答案,之前如何以正確的方式做到這一點,看看:[this](http://stackoverflow.com/questions/2219238#2219238),[this](http:// stackoverflow。 (1832524)和[this](http://stackoverflow.com/questions/2428468#2428468)。 – BalusC 2010-06-05 00:26:46