我知道Oracle只有DATE
,DATETIME
和TIMESTAMP
类型。
我有一个在Java
中建立的网站,我正在寻找一种方法在表Appointments
中插入Oracle数据库中的日期和时间。
例如:
约翰在2016年1月12日21:00预约了他的工作。
因此,格式为day-month-year, hh24:minute
。
如果可能的话,我不想在我的应用程序中加入来自互联网的日期选择器。
如何仅使用JSP / HTML来完成?
不幸的是,HTML5类型"日期"在IE或Firefox中不受支持。 我的问题是,使用某些输入字段是否是一个好主意,并以某种方式将它们连接成一个" preparedSQL语句"将这些数据插入数据库中的正确位置?
答案 0 :(得分:0)
无论如何,这是正常/好的方法。只需确保它们在进入数据库之前形成一个“可解析的日期/时间”字段,否则“尝试存储(或可能)错误的内容”没有任何意义。
并且您不需要连接SQL查询中的字段,当您到达数据库层时,您应该传递正常的DateTime
(希望......或类似的东西),因此您只需要一个字段(?
中的PreparedStatement
。
<强>更新强>
您从JSP / HTML页面获取值;然后尝试构建一个专门处理日期/时间例程的Java对象(DateTime
,Calendar
,Date
...或者与某些格式化程序 )...你很高兴,因为你已经拥有了一些用你已经从用户那里获得的输入处理日期/时间的东西!这就是您需要在PreparedStatement
中使用的内容。
答案 1 :(得分:0)
这是一个让你入门的骨架代码。
public class Appointment {
private Integer id;
private Date date;
private List<User> participants;
// Getters and setters...
}
public class User {
private Integer id;
private String firstname;
// ...
// Getters and setters...
}
@WebServlet("/createAppointment")
public class CreateAppointmentServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Read form fields
String date = request.getParameter("date");
String hour = request.getParameter("hour");
// Perform sanity check
// ...
// Grab a JDBC connection and call a PreparedStatement
// ...
// Get response writer
PrintWriter writer = response.getWriter();
// Build HTML code (error cases not shown for code clariry)
StringBuilder htmlResponse = new StringBuidler();
htmlResponse.append("<html>");
htmlResponse.append("<h2>Your username is: " + username + "<br/>");
htmlResponse.append("Your password is: " + password + "</h2>");
htmlResponse.append("</html>");
// Return response
writer.println(htmlResponse.toString());
}
}
<html>
<body>
<form name="loginForm" method="post" action="createAppointment">
Date: <input type="text" name="date"/> <br/>
Hour: <input type="text" name="hour"/> <br/>
<input type="submit" value="Create appointment" />
</form>
</body>
</html>
要进一步了解,请阅读:Handling HTML form data with Java Servlet