2012-02-23 101 views
0

我一直在執行這個特定的JSP頁面時遇到了一些嚴重的問題。 CODE新行未插入數據庫中

<tr> 
<td> 
<%rs2 = st.executeQuery("Select * from degrees"); %> 
<select name = "courses"> 
<%while(rs2.next()) {%> 
<option value = "<%=rs2.getString(1)%>"><%=rs2.getString(2)%></option> 
<%} %> 
</select> 
</td> 
<td> 
<input type = "text" name = "ratings" class = "span1"> 
</td> 
<td> 
<a href = "">Delete Course</a> 
</td> 
</tr> 
<%if(request.getParameter("courses")!="0"&&request.getParameter("ratings")!=null){ 
    String degree_id = request.getParameter("courses"); 
    int ratings = Integer.parseInt(request.getParameter("ratings")); 
    PreparedStatement ps = con.prepareStatement("Insert into college_degree values (?,?,?)"); 
    ps.setString(1,college_id); 
    ps.setString(2,degree_id); 
    ps.setInt(3,ratings); 
    ps.executeUpdate(); 
    c_a = Integer.parseInt(course_added); 
    c_a++; 
    String str = Integer.toString(c_a); 
    course_added = str; 
    String site = new String("degree_to_college.jsp?course_added="+course_added); 
    response.setStatus(response.SC_MOVED_TEMPORARILY); 
    response.setHeader("Location", site); 
} 

%> 
</tbody> 
</table> 
<form action = "degree_to_college.jsp"> 
<input type = "submit" class = "btn-primary large" value = "NEW COURSE" /> 
</form>** 

這裏THR麻煩的是點擊新的課程,我重定向到同一個頁面,而數據庫中的任何更改後。沒有數據被添加到數據庫。

+1

這就是這樣一個開放式問題的傢伙。首先,請不要在JSP內部編寫Java代碼,請在此2012年。任何方式,那麼你需要檢查日誌,看看是否有任何錯誤。放置一個斷點並查看代碼執行時會發生什麼。 – Shahzeb 2012-02-23 03:03:12

回答

3

您忘記在使用後關閉語句和連接。關閉連接將立即提交交易。正常的JDBC語法是在try塊的finally塊中關閉它們,因爲它們在其中創建。

你用這個JSP順便提一下more serious issues

0

在BalusC說的什麼之上。

HTML表單與select/Option語句分開。確保Select元素位於Form內部,以確保它被提交。