最近,下了寫JSP相關視頻在看。沒什麼特別大的問題,講的基本上都能聽懂,也能照葫蘆畫瓢般的實現出來。昨晚在寫sql查詢語句時不小寫漏了一個欄位。結果花10幾分鐘的時間才找出問題的所在。意味著延遲了10幾分鐘的時間睡覺!杯具!
具體功能是想實現對一個表的進行修改儲存。這裡表的結構是(id,name,level) ,其中id是自動成長的。想在頁面上對它進行修改儲存,無非就是先從表中取出資料返回頁面的顯示,使用者根據顯示的內容變更,然後再提交儲存。
進入該修改介面時,從Servlet中調用資料取出資料,取資料代碼如下:(通過調用此方法來實現)
Code:
- public void preCategory(HttpServletRequest request,
- HttpServletResponse response) throws ServletException, IOException {
- String id =request.getParameter("id");
- String sql="select id,name,level from category where id="+id;
- //String sql="select name,level from category where id="+id; 少個個Id 的查詢
- Category category=null;
- QueryRunner qr=DbHelper.getQueryRunner();
- try {
- List list = (List) qr.query(sql, new BeanListHandler(Category.class));
- System.out.println("傳過去之前的list="+list.size());
- category = (Category) list.get(0);
- } catch (SQLException e) {
- e.printStackTrace();
- }
-
- System.out.println("傳過去之前的id="+category.getId());
- System.out.println("傳過去之前的name="+category.getName());
- System.out.println("傳過去之前的Level="+category.getLevel());
- request.setAttribute("category", category);
- request.getRequestDispatcher("/editCategory.jsp").forward(request, response);
- }
咋一看上去沒什麼錯,但是在執行更新插入的時候不成功。原來就是此處的id值是null。只是通過後台列印就很清楚的知道了。注釋部分便是之前出錯的sql語句,個人覺得挺隱形。
因為提交之後,又執行了一個資料庫插入資料的動作,在不報錯的情況下,(插入不成功而已)返回到了新的頁面。所以得順著新的頁面一直找回到此處。