使用jsp在mysql数据库中插入引导日期选择器日期

r3i60tvu  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(465)

我试图通过jsp在mysql数据库中插入一个日期。使用引导日期选择器接受日期。mysql中shipping\u date和delivery\u date的数据类型是date(也尝试使用datetime)。它给了我无法解释的日期错误。请帮我解决这个问题。提前谢谢`
这里的全部代码是:

  1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
  2. pageEncoding="ISO-8859-1"%>
  3. <%@ page import="java.sql.*" %>
  4. <%@page import="java.io.*" %>
  5. <%@page import="java.text.SimpleDateFormat,java.text.DateFormat,java.text.ParseException" %>
  6. <%@page import="java.util.Date" %>
  7. <%@page import="java.lang.*" language="java"%>
  8. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  9. <html>
  10. <head>
  11. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  12. <title>Add PO Details</title>
  13. <h1>Add New Purchase Order Details</h1>
  14. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
  15. <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.3.0/css/datepicker3.css">
  16. <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.3.0/js/bootstrap-datepicker.js"></script>
  17. </head>
  18. <script>
  19. $(function() {
  20. var date = new Date();
  21. date.setDate(date.getDate());
  22. $('#shipping_date').datepicker({
  23. autoclose: true,
  24. todayHighlight: true,
  25. format: 'yyyy-MM-dd',
  26. startDate: date
  27. });
  28. $('#shipping_date').datepicker().on('changeDate', function() {
  29. var temp = $(this).datepicker('getDate');
  30. var d = new Date(temp);
  31. d.setDate(d.getDate());
  32. $('#delivery_date').datepicker({
  33. autoclose: true,
  34. format: 'yyyy-MM-dd',
  35. startDate: d,
  36. });
  37. $('#delivery_date').datepicker().on('changeDate', function() {
  38. var temp1 = $(this).datepicker('getDate');
  39. var d1 = new Date(temp1);
  40. d1.setDate(d1.getDate());
  41. });
  42. });
  43. });
  44. </script>
  45. <body>
  46. <form method="post" name="Form" action="" >
  47. <%
  48. String connectionurl="jdbc:mysql://localhost:3306/mydb";
  49. Connection connection=null;
  50. Class.forName("com.mysql.jdbc.Driver");
  51. connection=DriverManager.getConnection(connectionurl,"root","root1216");
  52. ResultSet rs1=null;
  53. Statement s10=connection.createStatement();
  54. rs1=s10.executeQuery("select max(pono) from podetails");
  55. rs1.next();
  56. int id1=rs1.getInt(1);
  57. id1=id1+1;
  58. %>
  59. Enter PO number:<input type=text name=pono value="<%=id1%>" readonly><br><br>
  60. Enter shipping date:<input type=text name=shipping_date id="shipping_date" class="form-control datepicker" required><br><br>
  61. Product is shipped via:<input type=text name=shipped_via required><br><br>
  62. Enter delivery date:<input type=text name=delivery_date id="delivery_date" class="form-control datepicker" required><br><br>
  63. <center><input type="submit" name="ADD"></center>
  64. <%
  65. try
  66. {
  67. ResultSet rs=null;
  68. PreparedStatement ps=null;
  69. if(connection!=null)
  70. System.out.println("Successfully connected to database\n");
  71. else
  72. System.out.println("Failed to connect!!!\n");
  73. String pono1=request.getParameter("pono");
  74. String sdate2=request.getParameter("shipping_date");
  75. String shipped_via=request.getParameter("shipped_via");
  76. String ddate2=request.getParameter("delivery_date");
  77. /* SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  78. java.util.Date sdate1=sdf.parse(request.getParameter("shipping_date").toString());
  79. java.sql.Date sdate = new java.sql.Date(sdate1.getTime() );
  80. System.out.println("after shipping");
  81. SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
  82. java.util.Date ddate1 =sdf1.parse(request.getParameter("delivery_date").toString());
  83. java.sql.Date ddate = new java.sql.Date(ddate1.getTime() );
  84. System.out.println("after delivery");*/
  85. int pono=Integer.parseInt(pono1.trim());
  86. System.out.println("before insert");
  87. ps=connection.prepareStatement("insert into podetails(pono,shipping_date,shipped_via,delivery_date)values(?,?,?,?)");
  88. ps.setInt(1,pono);
  89. //ps.setDate(2,sdate);
  90. ps.setString(2,sdate2);
  91. ps.setString(3,shipped_via);
  92. ps.setString(4,ddate2);
  93. //ps.setDate(4,ddate);
  94. int i=ps.executeUpdate();
  95. System.out.println("Data is Successfully added\n");
  96. Statement s=connection.createStatement();
  97. rs=s.executeQuery("select * from podetails");
  98. while(rs.next())
  99. { %>
  100. <tr>
  101. <td><%=rs.getInt("pono") %></td>
  102. <td><%=rs.getDate("shipping_date") %></td>
  103. <td><%=rs.getString("shipped_via") %></td>
  104. <td><%=rs.getDate("delivery_date") %></td>
  105. </tr>
  106. <br>
  107. <%
  108. System.out.println();}
  109. connection.close();
  110. rs.close();
  111. ps.close();
  112. }
  113. catch(Exception e)
  114. {
  115. System.out.println("Unable to connect\n");
  116. e.printStackTrace(System.out);
  117. }
  118. %>
  119. </form>
  120. </body>
  121. </html>
bogh5gae

bogh5gae1#

我通过使用javascript验证而不是bootstrap日期选择器解决了这个问题。下面是代码。。

  1. <script type="text/javascript">
  2. $(function(){
  3. var dtToday = new Date();
  4. var month = dtToday.getMonth() + 1;
  5. var day = dtToday.getDate();
  6. var year = dtToday.getFullYear();
  7. if(month < 10)
  8. month = '0' + month.toString();
  9. if(day < 10)
  10. day = '0' + day.toString();
  11. var maxDate = year + '-' + month + '-' + day;
  12. $('#shipping_date').attr('min', maxDate);
  13. });
  14. $("input[name='shipping_date']").change(function() {
  15. $("input[name='delivery_date']").attr('min',$(this).val());
  16. });
  17. </script>

另外,我将shipping\u date和delivery\u date的输入类型更改为

  1. <input type="date" name="shipping_date" id="shipping_date" required>
展开查看全部

相关问题