【问题标题】:How to Store date from Html form to database using java?如何使用java将日期从Html表单存储到数据库?
【发布时间】:2017-01-19 02:30:36
【问题描述】:

我已经通过 html 页面输入了日期并尝试将其存储到数据库中,但我得到了这个异常 java.lang.NumberFormatException: For input string: "09/12/2016" 并且我在 netbeans 中也遇到了错误"用trycatch 包围Date date = (Date)formatter.parse(pswd);”这是我的代码:

public class OfferRide extends HttpServlet {

    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

                String status = "";              
                try {

                String userName = req.getParameter("Source");
                String email = req.getParameter("Destination");
                String pswd = req.getParameter("Date");
                SimpleDateFormat formatter = new SimpleDateFormat("YYYY-MM-DD");

                java.sql.Date date = (java.sql.Date)formatter.parse(pswd);


                String id = req.getParameter("Seats");
                int seat =Integer.parseInt(id);
                String id1= req.getParameter("Phone");
                long phone = Long.parseLong(id1);
                    Connection con = DataBaseServices.getConnection();

                    PreparedStatement ps = con.prepareStatement("insert into offerride values(?,?,?,?,?)");

                    ps.setString(1, userName);
                    ps.setDate(2, date);
                    ps.setString(3, email);
                    ps.setInt(4, seat);
                    ps.setLong(5, phone);


                    int x = ps.executeUpdate();

                    if (x == 1) {

                        req.getRequestDispatcher("OfferRide1.html").include(req, resp);
                    }


                } catch (Exception e) {
                    status = e.toString();
                    //req.getRequestDispatcher("OfferRide1.html").include(req, resp);
                }

                PrintWriter out = resp.getWriter();

                out.print(status);                            

    }

}

【问题讨论】:

  • 粘贴完整的堆栈跟踪..您是如何更改代码的,因此当您将日期语句包围在 try catch 周围时,它开始出现编译时错误?
  • 你能在解析后添加date的值吗?
  • 代码已成功部署并显示我的页面,但在填写信息后单击提交按钮时,此异常 "exception java.lang.NumberFormatException: For input string: "7898897899" " 显示在浏览器 @SMA 上
  • 7898897899 超出整数范围,因此出现数字格式异常。
  • 是的,谢谢@SMA,我更改了数据类型类型,因此解决了此异常,但在执行上述最近编辑的代码后出现了“java.text.ParseException: Unparseable date: "09/13/2016"”

标签: java html mysql


【解决方案1】:

将此代码放在 try 和 catch 块之间

try
{
DateFormat formatter = new SimpleDateFormat("YYYY-MM-DD"); 
Date date = (Date)formatter.parse(pswd);
}
catch(ParseException e)
{
}

【讨论】:

  • 我做到了,但它仍然给出异常,这次它的异常 java.lang.NumberFormatException: For input string: "7878988999"
  • 您的 DateFormat 格式为“YYYY-MM-DD”格式。因此,您必须以该格式输入字符串。否则它将通过异常。输入如“1990-01-01”
  • 我正在使用像 09/11/2016 这样的日历通过 HTML(input type="Date") 页面输入日期,并尝试在 java 中将其转换为 yyyy-MM-dd,因为在数据库中是 Date 类型有这个(yyyy-MM-dd)格式。 @ArvindKatte
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-20
  • 2020-08-03
  • 2019-12-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多