2014-04-01 130 views
-1

^h從Java Servlet中

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     response.setContentType("text/html"); 
    java.io.PrintWriter out = response.getWriter(); 

    String fname=request.getParameter("first_name"); 
    String lname=request.getParameter("last_name"); 
    String uname=request.getParameter("user_name"); 
    String email=request.getParameter("email"); 
    String p1=request.getParameter("password"); 
    String p2=request.getParameter("password_confirmation"); 
    String password=""; 
    String user="User"; 
    int i = 0; 
    out.println(fname); 
    out.println(lname); 
    out.println(uname); 
    out.println(email); 
    out.println(p1); 
    out.println(p2); 
    if (p1.equals(p2)) { 
     password=p1;    
    } 
    else{ 

      out.print("<div class='alert alert-dismissable alert-danger'>"); 
      out.print(" <button type='button' class='close' data-dismiss='alert'>&times;</button>"); 
      out.print(" <strong>Oh snap!</strong> <a href='index.jsp#about' class='alert-link'>Password mismatched!!</a> fill up again!</div>");  
      RequestDispatcher rd=request.getRequestDispatcher("index.jsp");  
       rd.include(request,response); 

    } 
    try{ 
     new org.sqlite.JDBC(); 
     Class.forName("org.sqlite.JDBC"); 
     String url = "jdbc:sqlite:c:\\dbWheels.db"; 
     Connection con = DriverManager.getConnection(url); 
     con.setAutoCommit(false); 
      System.out.println("Opened database successfully"); 

    PreparedStatement updateUserInfo = (PreparedStatement) con.prepareStatement("insert into tbluserinfo (username,userpassword,usertype,ufirstname,ulastname,uemail) values(?,?,?,?,?,?)"); 
     //Statement updateUserInfo = con.createStatement(); 
     //since first column is AI, no need to include that for updates 
     updateUserInfo.setString(1, uname); 
     updateUserInfo.setString(2, password); 
     updateUserInfo.setString(3, user); 
     updateUserInfo.setString(4, fname); 
     updateUserInfo.setString(5, lname); 
     updateUserInfo.setString(6, email); 


     i = updateUserInfo.executeUpdate(); 


       con.close(); 
    } catch (Exception e){ 
     e.printStackTrace(); 

    }   

    if(i!=0){ 
     RequestDispatcher rd=request.getRequestDispatcher("index.jsp");  
      rd.include(request,response); 
     out.print("<div class='alert alert-dismissable alert-success'>"); 
      out.print(" <button type='button' class='close' data-dismiss='alert'>&times;</button>"); 
      out.print(" <strong>Hooooraaaayyyy!</strong> <a href='index.jsp#contact' class='alert-link'>Sign in NOW!!</a> :D!</div>");  

    }else{ 
     out.println("Your data could not be stored in the database"); 
    } 

    out.close(); 
} 

這是我的代碼,請幫我插入在sqlite的數據。我非常需要這個插入代碼。謝謝!!。我真的不知道代碼的主要問題。我只是想添加一個數據。

繼承人的日誌

信息:在5086毫秒Server啓動 值java.sql.SQLException:打開DB:「C:\ dbWheels.db:訪問在org.sqlite.Conn被拒絕 。 (Conn.java:59) 在org.sqlite.JDBC.connect(JDBC.java:64) 在java.sql.DriverManager.getConnection(未知來源) 在java.sql.DriverManager.getConnection(未知來源) 在javax.servlet.http.HttpServlet.service上的Register.Register.doPost(Register.java:76) (HttpServlet.java:641) at javax.servlet.http.H (org.apache.catalina.core.ApplicationFilterChain.doFilter)(ApplicationFilterChain.java: 210) 在org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 在> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.jav>一:在243) > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) at> org.apache.catalina.core。 StandardContextValve.invoke(StandardContextValve.java:164) at> org.apache.catalina.authenticator.AuthenticatorB ase.invoke(AuthenticatorBase.java:462) 在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) 在org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) 在org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562) 在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 在org.apache.catalina.connector。 CoyoteAdapter.service(CoyoteAdapter.java:395) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:250) at> org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process(Http11Protocol.java >:188) at> org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process(Http11Protocol.java> 166) at org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java:302) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor $ Worker .RUN(來源不明) 在java.lang.Thread.run(來源不明)

+0

我刪除了con.setAutoCommit(false); – user3486468

+0

你可以發佈任何日誌的例外? –

+0

對不起,我是這個挑釁:請改善你的代碼:不要使用愚蠢的變量名稱,比如'i'(即updateStatus)。然後,嘗試將您的業務邏輯和數據層(您堅持數據的位置)的表示層(JSP&Co.)分開。除此之外,我想參考@ Stathis-Andronikos – Markus

回答

1

庫指出,在您的C文件:/dbWheels.db是無法訪問的,這可能有多種原因。 (由於ClassLoader問題,較不重要Link

該文件是否存在?你授予java(你的進程)對它的訪問權嗎?你確定你沒有輸錯嗎?

+0

有我更新了我的帖子 – user3486468

+0

@ user3486468:我同時更新了我的內容。 – Markus

+0

該文件存在。我已經在同一個項目中使用過數據庫。 – user3486468