<%@ page contentType="text/html; charset=gbk" language="java" errorPage="error.jsp" %> 
<%@ page import="java.sql.*" %> 
<%@ page import="java.text.ParsePosition" %> 
<%@ page import="java.text.SimpleDateFormat" %> 
<%@ page import="java.util.Date" %> 
<% 
String ID = request.getParameter("ID"); 
String price = request.getParameter("price"); 
String description = request.getParameter("description"); 
Connection con = null; 
PreparedStatement psm = null; 
ResultSet rs = null; 
try 

Class.forName("com.mysql.jdbc.Driver").newInstance(); 
String url = "jdbc:mysql://localhost/mydb?useUnicode=true&characterEncoding=gbk"; 
con = DriverManager.getConnection(url,"root","12345"); 
psm = con.prepareStatement("insert into products1 values(?,?,?)"); 
psm.setString(1,ID); 
psm.setString(2,price); 
psm.setString(3,description); 
psm.executeUpdate(); 
response.sendRedirect("adminindex.jsp"); 

catch(Exception e){ 
response.sendRedirect("addproducts.jsp"); 

finally 

if(rs!=null){ 
try{ rs.close();}catch(Exception e){e.printStackTrace();} 

if(psm!=null){ 
try{ psm.close();}catch(Exception e){e.printStackTrace();} 

if(con!=null){ 
try{ con.close();}catch(Exception e){e.printStackTrace();} 


%> 
数据库:表:product1 的字段分别是(product_id,product_name,price,description); 
其中product_id是自动编号; 
总是出现异常,跳转到了("addproducts.jsp")页面; 
请问是什么问题?

解决方案 »

  1.   

    接受提交数据时判断一下该数据十分为null或"";问题:
    你是要执行insert语句不应该使用executeUpdate()[更新提交];
    使用executeQuery()方法提交.
      

  2.   

    报什么错?,楼上的说得好像不对吧,insert语句是用executeUpdate()执行的
      

  3.   

    应该是你的异常抛错了吧。。
     catch (SQLException e) {
    e.printStackTrace();
    }
    应该抛出SQL异常的。
      

  4.   

    你用executeUpdate()方法并没有错误。。
    用SQLException把异常抛出来看看是什么错误。
      

  5.   

    呵呵,谢谢各位了
    不过最后还是把("insert   into   products1   values(?,?,?)");
    改为:("insert   into   products1 (product_id,product_name,price,description)  values(?,?,?)");  才可以!