新行未插入数据库中

时间:2012-02-23 02:57:57

标签: java forms jsp jdbc

执行此特定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>**

这里遇到麻烦是点击新课程后我被重定向到同一页面而没有对数据库进行任何更改。没有数据添加到数据库中。

2 个答案:

答案 0 :(得分:3)

您忘记在使用后关闭声明和连接。关闭连接将立即提交事务。正常的JDBC习惯用法是它们在finally块的try块中关闭,就像它们被创建一样。

你使用这个JSP的方式more serious issues

答案 1 :(得分:0)

除了BalusC所说的。

HTML表单与select / Option语句分开。确保Select元素在Form中,以确保它被提交。