java—如何使用jdbc将用户在jsp输入类型“time”中输入的值插入mysql数据库

w46czmvw  于 2021-06-20  发布在  Mysql
关注(0)|答案(3)|浏览(456)

我在jsp中创建了一个投诉登记表,其中有一个类型为“time”的输入字段,而且时间不应该总是当前时间,因此我不能使用sql的currenttime()方法。
现在,当把它分配给数据库时,我得到了http status 500–internal server error作为“检查与mysql服务器版本相对应的手册,在第1行的'.'20:20:00')'附近使用正确的语法”。
这里我使用了“setstring()”方法。我尝试过settime(),但在这里也不起作用,而setstring()对date值起作用,date被正确地插入到db中*/
这是我的jsp代码,用于在“pcs”数据库的“test”表中插入时间。

<%@ 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的正确方法是什么。?

bgibtngc

bgibtngc1#

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

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

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

whitzsjs2#

你可以这样试试

String time = "15:30:18";

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

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

wlzqhblo3#

您应该将存储在字符串变量中的日期转换为 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);` 

相关问题