2014-04-01 46 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