Как вставить введенное пользователем значение в jsp тип ввода «время» в базу данных MYSQL, используя JDBC - PullRequest
0 голосов
/ 03 октября 2018

Я создал форму регистрации жалоб в JSP, и в ней есть поле ввода типа «время», также время не всегда должно быть текущим, поэтому я не могу использовать метод SQL CURRENTTIME ().

Теперь при назначении его базе данных я получаю HTTP Status 500 - Internal Server Error as «проверьте руководство, соответствующее версии вашего сервера 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();

Как правильно вставить время в базу данных MYSQL из поля input type = "time" формы .?

Ответы [ 3 ]

0 голосов
/ 04 октября 2018

Вы должны преобразовать дату, хранящуюся в строковой переменной, в 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);

0 голосов
/ 04 октября 2018

Вы должны преобразовать строку времени в java.time.LocalTime и использовать setObject для передачи этого параметра:

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

st.setObject(1, java.time.LocalTime.parse(time));
0 голосов
/ 03 октября 2018

Вы можете попробовать вот так

String time = "15:30:18";

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

System.out.println("Time: " + sdf.format(date));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...