如何使用 JDBC 将用户在 jsp 输入类型“时间”中输入的值插入 MYSQL 数据库

Posted

技术标签:

【中文标题】如何使用 JDBC 将用户在 jsp 输入类型“时间”中输入的值插入 MYSQL 数据库【英文标题】:How to insert the user entered value in jsp input type "time" to MYSQL database using JDBC 【发布时间】:2019-03-08 20:41:54 【问题描述】:

我在 JSP 中创建了一个投诉注册表,其中有一个“时间”类型的输入字段,时间也不应该总是当前时间,因此我不能使用 SQL 的 CURRENTTIME() 方法。

现在,在将其分配给数据库时,我收到 HTTP 状态 500 – 内部服务器错误为“检查与您的 mysql 服务器版本相对应的手册,以获取在 '.'20:20:00' 附近使用的正确语法)”在第 1 行"。

这里我使用了“setString()”方法。 我已经尝试过 setTime() 但这在这里也不起作用,而 setString() 正在为日期值工作并且日期被正确插入到数据库中。*/

这是我在“PCS”数据库的“测试”表中插入时间的jsp代码。

<%@ page import="java.sql.*" %>    
String time=request.getParameter("time");
String url="jdbc:mysql://localhost:3306/pcs";
String uname="root";
String passw="publiccomplaint";
String query="insert into test values(?)";
Class.forName("com.mysql.jdbc.Driver");
Connection 
con=DriverManager.getConnection(url,uname,passw);
PreparedStatement st=con.prepareStatement(query);
st.setString(1,time); 
int count=st.executeUpdate();
st.close();
con.close();

从表单的 input type="time" 字段将时间插入 MYSQL DB 的正确方法是什么?

【问题讨论】:

【参考方案1】:

你可以这样试试

String time = "15:30:18";

DateFormat sdf = new SimpleDateFormat("hh:mm:ss");
Date date = sdf.parse(time);

System.out.println("Time: " + sdf.format(date));

【讨论】:

使用 new Date(String) 解析日期已被弃用,因为大约 15 年左右...... @ArockiaRaj 但是日期插入工作正常,我遇到了从 JSP 表单到 MySQL DB 插入时间的问题,顺便说一句,感谢您的帮助。 您能提供您的架构和示例输入吗? @Niraj Wagh【参考方案2】:

您应该将存储在字符串变量中的日期转换为java.util.date,然后再转换为java.sql.date

  String startDate="01-Feb-2013"; // Input String
        SimpleDateFormat sdf1 = new SimpleDateFormat("dd-MM-yyyy"); // New Pattern
        java.util.Date date = sdf1.parse(startDate); // Returns a Date format object with the pattern
        java.sql.Date sqlStartDate = new java.sql.Date(date.getTime());
        System.out.println(sqlStartDate); // Outputs : 2013-02-01

然后

preparedStatement.setDate(1,sqlStartDate);

【讨论】:

【参考方案3】:

您应该将时间字符串转换为java.time.LocalTime 并使用setObject 将其作为参数传递:

String time = "20:20:00";  // sample data

st.setObject(1, java.time.LocalTime.parse(time));

【讨论】:

以上是关于如何使用 JDBC 将用户在 jsp 输入类型“时间”中输入的值插入 MYSQL 数据库的主要内容,如果未能解决你的问题,请参考以下文章

使用 JSP 和 JDBC 在网站上注册时将新用户添加到数据库

带有 JSP 的 JDBC 无法插入

如何将用户定义的类型作为输入传递给存储过程?

Jdbc连接数据库实验报告

JDBC数据库访问与JavaBean

如何在 JSP 中收集用户输入以便将其存储在数据库中