从android访问Java servlet时mysql数据库未更新

从android访问Java servlet时mysql数据库未更新,java,android,mysql,email,servlets,Java,Android,Mysql,Email,Servlets,我一直在创建一个android应用程序。我设计了一个报名表。在这里,当人们单击注册按钮时,详细信息将添加到mysql表(包含确认代码作为字段),确认代码最初设置为NULL,然后调用servlet。这个servlet包含生成4位随机数的代码,并将其添加到特定条目的mysql表中。然后servlet调用另一个类中的方法,该方法向用户发送带有代码的确认电子邮件 现在,当我运行应用程序和servlet时,会生成一个确认代码,并将其发送给用户vie电子邮件。但问题是mysql表没有得到更新。注意:mysq

我一直在创建一个android应用程序。我设计了一个报名表。在这里,当人们单击注册按钮时,详细信息将添加到mysql表(包含确认代码作为字段),确认代码最初设置为NULL,然后调用servlet。这个servlet包含生成4位随机数的代码,并将其添加到特定条目的mysql表中。然后servlet调用另一个类中的方法,该方法向用户发送带有代码的确认电子邮件

现在,当我运行应用程序和servlet时,会生成一个确认代码,并将其发送给用户vie电子邮件。但问题是mysql表没有得到更新。注意:mysql表的更新代码在发送电子邮件的代码上面给出。但是,同一个servlet更新mysql表,并在提交HTML表单时发送电子邮件

我不知道怎么解决这个问题。。 有关信息,我正在Amazon Elastic Beanstalk上托管该应用程序

这是Servlet部分: protected void processRequest(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); System.out.println("fdsfsdf"); mBean = new MailSenderBean(); Random n=new Random(); int no=n.nextInt(); no%=10000; if(no<0) { no=-no; } String code="0000"+no , name = request.getParameter("name"), email = request.getParameter("email"); code=code.substring(code.length()-4, code.length()); try{ Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection(AppConfig.dbUrl,AppConfig.dbUname, AppConfig.dbPwd); PreparedStatement pst=con.prepareStatement("update signup_users set code=\'"+code+"\' where name=\'"+name+"\'"); pst.execute(); mBean.sendMail(name, email, code); System.out.println("name="+name+",email="+email+",code="+code); }catch(Exception e) { System.out.println(""+e); } } 受保护的void processRequest(HttpServletRequest请求,HttpServletResponse响应)引发ServletException,IOException{ setContentType(“text/html;charset=UTF-8”); System.out.println(“fdsfsdf”); mBean=新的MailSenderBean(); 随机n=新随机(); int no=n.nextInt(); 否%=10000;
如果(否从朋友那里得到了答案。我在android应用程序中使用了错误的字段进行更新,但我在html表单中使用了相应的键。这就是为什么我在android应用程序中单独获得了错误的输出。!!

请显示您代码的相关部分…否则我们都只是猜测。请检查此。.我已在此处添加了servlet代码。请发布客户端代码。由于您说过,当使用html表单发出http请求时,您的代码工作正常,因此问题可能出在客户端(即Android应用程序)不管怎样,你检查了你的应用服务器日志了吗?嗯,你肯定还有一些其他问题……首先,你没有正确使用
PreparedStatement
。你应该用
字符参数化你的输入……我还添加了客户端代码……检查一下。。 DefaultHttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(AppConfig.serverUrl); List lst =new ArrayList(); lst.add(new BasicNameValuePair("name", name)); lst.add(new BasicNameValuePair("email", email)); httpPost.setEntity(new UrlEncodedFormEntity(lst)); HttpResponse httpResponse = httpClient.execute(httpPost);