写了一个数据的提交的程序,在这个文件中我要实现的是,把拿到的内容输入到数据库中。代码如下:
<%@ page language="java" contentType="text/html; charset=gbk"
    pageEncoding="gbk"%>
<%@ page import="java.sql.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><%
int id = Integer.parseInt(request.getParameter("id"));
int rootid = Integer.parseInt(request.getParameter("rootid"));
String title = request.getParameter("title");
String cont = request.getParameter("cont");out.println(id);
out.println(rootid);Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url="jdbc:sqlserver://localhost:1433;database=bbs";
String user="sa";
String pwd="123";
//String str=null;
Connection conn=DriverManager.getConnection(url,user,pwd);String sql = "insert into article values(?,?,?,?,"+new java.util.Date()+",0)";
Statement stmt=conn.createStatement();
PreparedStatement pstmt = conn.prepareStatement(sql);
//set article IDENTITY_INSERT  ON;
pstmt.setInt(1,id);
pstmt.setInt(2,rootid);
pstmt.setString(3,title);
pstmt.setString(4,cont);
//set IDENTITY_INSERT article ON;
pstmt.executeUpdate();stmt.close();
pstmt.close();
conn.close();%><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>Insert title here</title>
</head>
<body>
 ok!
</body>
</html>
但是出现了一个这样的异常,不知道是怎么回事?异常如下:
org.apache.jasper.JasperException: An exception occurred processing JSP page /ReplyPage.jsp at line 3128: pstmt.setString(3,title);
29: pstmt.setString(4,cont);
30: //set IDENTITY_INSERT article ON;
31: pstmt.executeUpdate();
32: 
33: stmt.close();
34: pstmt.close();
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause javax.servlet.ServletException: com.microsoft.sqlserver.jdbc.SQLServerException: '(' 附近有语法错误。
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:862)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
org.apache.jsp.ReplyPage_jsp._jspService(ReplyPage_jsp.java:106)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause想知道怎么改。
最后就是还有一个问题,因为数据的第0项,是一个自动递增的值,中间好像还出现了一个这样的问题:就是set IDENTITY_INSERT article ON; 这个东西我应该在哪里设呢?

解决方案 »

  1.   

    String sql = "insert into article values(?,?,?,?,?,?)";
    Statement stmt=conn.createStatement();
    PreparedStatement pstmt = conn.prepareStatement(sql);
    int seq = 1;
    pstmt.setInt(seq++,id);
    pstmt.setInt(seq++,rootid);
    pstmt.setString(seq++,title);
    pstmt.setString(seq++,cont);
    pstmt.setDate(seq++,new java.util.Date());
    pstmt.setString(seq++,"0");
    pstmt.executeUpdate(); 
      

  2.   

    new java.util.Date()得到的是类似:Tue Sep 29 00:04:02 CST 2009的字符串,你要插入操作是不是要拼字符串?
    例如改后:String sql = "insert into article values(?,?,?,?,‘"+new java.util.Date()+"’,0)"; 
    你试试吧。
      

  3.   

    你写SQL语句错了
    少了个单引号
    要小心哦
      

  4.   

    很明显的SQL语句的问题啊,自动增长的字段不用管的!
      

  5.   

    javax.servlet.ServletException: com.microsoft.sqlserver.jdbc.SQLServerException: '(' 附近有语法错误。 这句话说明你的Sql语句有问题,'(' 附近有语法错误 说明在(这个附近的地方出错了。注意看看跟半角,全角字符有没有关系。
      

  6.   

    请问一下 我如果吧这个new Java.util.Date()改成了getdate()(这个是数据库里的一个获得时间的函数)我该怎么写?
    是不是可以这样:"insert into article values(?,?,?,?,getdate(),0)";
      

  7.   

    这种问题我该怎么查啊,那些不是Eclipse里面应该会自动报错的吗?