如何使用JDBC

时间:2018-10-03 15:01:24

标签: java html mysql jsp jdbc

我已经在JSP中创建了投诉注册表单,并且存在一个输入类型为“ time”的输入字段,而且时间不应该总是当前时间,因此我不能使用SQL的CURRENTTIME()方法。

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

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

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

<%@ 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();

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

3 个答案:

答案 0 :(得分:0)

您可以尝试这样

String time = "15:30:18";

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

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