2012-05-11 4 views
0

で値の数と一致していない私は、MySQLのdatatbaseを持っている、とサーブレットでの作業: が、これは私のテーブルのスキーマです::ます。java.sql.SQLException:列数が行1

CREATE TABLE Files (
File_Name    VARCHAR(50), 
File_Data    Blob , 
File_Date   VARCHAR(20), 
File_Course_Code  VARCHAR(45) REFERENCES Course(Course_Code) , 
PRIMARY KEY (File_Name , File_Date, File_Course_Code) 
); 

そしてここにはありますサーブレットコード:

protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    response.setContentType("text/html;charset=UTF-8"); 
    ServletOutputStream os = response.getOutputStream(); 
    try { 
     InputStream uploadedFile = null; 

     DiskFileUpload fu = new DiskFileUpload(); 
     // If file size exceeds, a FileUploadException will be thrown 
     fu.setSizeMax(10000000); 

     List fileItems = fu.parseRequest(request); 
     Iterator itr = fileItems.iterator(); 

     while (itr.hasNext()) { 
      FileItem fi = (FileItem) itr.next(); 

      //Check if not form field so as to only handle the file inputs 
      //else condition handles the submit button input 
      if (!fi.isFormField()) { // If the form fiel is a file 
       uploadedFile = fi.getInputStream(); 
      } 
     } 

      // to get the file name: 
      String fileName= "String"; 



      // to extract the date: 
      java.util.Date now = new java.util.Date(); 
      String DATE_FORMAT = "yyyy-MM-dd hh:mm:ss"; 
      SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT); 
      String strDateNew = sdf.format(now); 


      HttpSession session = request.getSession(); 
      String a = (String) session.getAttribute("fileccode"); 



      // set connection up: 
      Class.forName("com.mysql.jdbc.Driver"); 
      Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/VC", "root", ""); 
      PreparedStatement stmt = null; 
      stmt = conn.prepareStatement("INSERT INTO Files (File_Name,File_Data,File_Date,File_Course_Code) VALUES (?,? ?,?)"); 
        stmt.setString(1,fileName); 
      stmt.setBinaryStream(2,uploadedFile); 
        stmt.setString(3,strDateNew); 
        stmt.setString(4,a); 
      stmt.executeUpdate(); 



    } catch (FileUploadException e) { 
     os.print(e.getLocalizedMessage()); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } finally { 
     os.close(); 
    } 
} 

私はこのエラーについて多くの投稿を見ましたが、ほとんどすべてがクエリを書く際に構文エラーが発生していました。 私はシンタックスエラーがないと思います。 (File_Data)を主キーとして使用し、デフォルトのnullは何か問題を引き起こしますか?

答えて

3

はあなたが、私はこのカンマは私が泣いて作られたと信じてすることはできません ...

VALUES (?,?,?,?) 
+0

OMGがすっごくありがとうべきである

VALUES (?,? ?,?) 

コンマを逃します! – Lujain

関連する問題